Existe-t-il un moyen d'obtenir toutes les entités gérées à partir d'un EntityManager
Je suis la mise en place d'une base de données de test util et souhaitez garder une trace de toutes les données que l'EntityManager poignées. Plutôt que d'avoir un tas de listes pour chaque entité est-il un moyen de saisir tout étant géré par l'EntityManager d'un seul coup?
Ainsi, au lieu de cela:
EntityManager em;
List<Entity1> a;
List<Entity2> b;
...
List<Entityn> n;
cleanup() {
for(Entity1 e : a) em.remove(e);
for(Entity2 f : b) em.remove(f);
...
for(Entityn z : n) em.remove(z);
}
Je veux quelque chose de ce genre;
EntityManager em;
cleanup() {
List<Object> allEntities = em.getAllManagedEntities(); //<-this doesnt exist
for(Object o : allEntities) em.remove(o);
}
Ne sais pas si c'est possible, mais j'ai juste l'image que le gestionnaire sait ce que c'est de la gestion? Ou, si vous avez des idées de la gestion d'un groupe d'entités facilement.
source d'informationauteur Th3sandm4n
Vous devez vous connecter pour publier un commentaire.
Je pense que cela pourrait aider:
Fondamentalement EntityManager::Méta-modèle contient les informations de Métadonnées concernant les Entités gérées.
Ce fournisseur JPA utilisez-vous?
Il n'y a rien dans l'accord de projet conjoint de l'API pour cela.
Si vous utilisez EclipseLink, vous pouvez utiliser,
Si vous avez besoin de supprimer toutes les entités inséré lors d'un test, vous pouvez exécuter le test à l'intérieur d'une transaction, puis rollback de la transaction. Voir 9.3.5.4 la gestion des Transactions
comme un exemple de cette approche.