2017-08-22 4 views
0

J'ai un fournisseur de données qui récupère les données de la base de données et je conserve mes données sous forme de liste.Actualisation des données de la grille (Vaadin 8)

List<Person> myList= new ArrayList<>(dao.getAllPersons()); 
ListDataProvider<Person> dataProvider = new ListDataProvider<>(myList); 
//... 
grid.setDataProvider(dataProvider); 

Lorsque je supprime des données de ma base de données, elle ne s'actualise pas immédiatement. Je dois rafraîchir ma page pour voir la différence.

dao.deletePerson(...); 
dataProvider.refreshAll(); 

refreshAll() ne fonctionne pas du tout. Comment puis-je le rafraîchir?

+0

Si la consommation de mémoire est un jour un problème, vous devez basculer vers un fournisseur de données propre (par exemple, avec le rappel fetch et count) qui interroge directement à partir de la base de données, mais paginé. –

+0

@SteffenHarbich Développer un mini-projet pour apprendre le Vaadin mais je le considérerai. Je vous remercie. – Murat

Répondre

0

Résolu.

dataProvider.getItems().remove(item); // Removed item from list 
dao.deletePerson(...); // and removed it from my database too 

Après que:

dataProvider.refreshAll(); 

Il fonctionne!