Je lié un conteneur de requête Lazy à Vaadin Grille en suivant les exemples à https://vaadin.com/wiki/-/wiki/Main/Lazy%20Query%20Container/Vaadin Grid et LazyQueryContainer
Ces exemples nécessitent les implémentations de requête pour avoir une méthode taille public int @Override (). Apparemment, Grid utilise cette méthode pour obtenir le nombre total d'objets qui seront affichés lorsque le conteneur est défini.
La méthode de taille nécessite le comptage et le balayage de table complet, ce qui est très coûteux dans notre cas. Au lieu de définir immédiatement la taille, nous souhaitons la modifier/la mettre à jour dans chaque appel loadItems "@Override public Liste loadItems (int startIndex, int count)".
Quelle est la meilleure façon de notifier le conteneur (et éventuellement la grille utilisant ce conteneur) à propos de la dernière taille connue?
Existe-t-il également un exemple de définition de la taille paresseuse?
Merci d'avance.
J'ai personnellement pas encore utilisé, mais je soupçonne que la taille est nécessaire pour la _pagination_. Sans connaître le nombre d'éléments présents dans la base de données, il est difficile de déterminer quel bloc charger lors du chargement public de la liste loadItems (int startIndex, int count) ' – Morfic
Le report de l'estimation de la taille à l'appel loadItems vous aide-t-il? La taille est nécessaire dans ce type de modèle d'interface utilisateur de toute façon sur le premier rendu. Je reviendrai à la "pagination traditionnelle" au niveau de l'interface utilisateur si vous ne pouvez pas optimiser la requête de comptage. Certains utilisent (pour ce problème générique) une table distincte et des déclencheurs SQL. – mstahv
Merci pour vos réponses. Voici ce que j'ai essayé et jusqu'à présent, cela n'a pas fonctionné: J'ai défini la taille de LazyContainer sur Integer.MAX_VALUE. Chaque appel de méthode loadItems, interrogera l'intervalle demandé à partir de la base de données et si ce n'est pas la dernière page, il gardera la taille en entier max. S'il s'agit de la dernière page, il définira la taille correcte pour le conteneur. Ainsi, le conteneur lui-même semble fonctionner. Mais, Grid vérifie la taille uniquement lorsque le conteneur initialement affecté à la grille. Et ne réinterroge jamais la taille avant ou après la méthode loadItems call.it suppose toujours que la taille est la même. – turgos