2009-10-27 7 views
2

J'ai une application de bureau swing qui utilise entitymanagerfactory, mais lorsque cette application est exécutée plusieurs fois en même temps, les gestionnaires des entités diferents ont d'anciennes données qui ont été modifiées par d'autres la prochaine entitymanagerfactory ... comment puis-je synchroniser à tout moment le gestionnaire d'entités avec les données de la base de données ??synchroniser entitymanager depuis la base de données

Répondre

2

EntityManager les cas ne devraient pas être maintenus pendant des périodes prolongées; au lieu de chacun devrait être utilisé pour unit of work et mis au rebut après.

Cela dit, EntityManager a une méthode refresh() vous pouvez invoquer pour recharger l'état d'une entité particulière de la base de données.

Il a également une méthode clear() qui effacera complètement le contexte de persistance des "vieilles" données. Cependant, vous devez faire attention - appeler le clear() sans flush() supprimera toutes les mises à jour en attente.

Questions connexes