Je me demandais juste que la fermeture de EntityManagerFactory
est similaire avec la fermeture de la base de données jdbc? Ce n'est pas tout à fait vrai, mais la fermeture d'un EntityManagerFactory
serait plus proche de la destruction d'un pool de connexions complet. Si vous voulez penser à la connexion JDBC, vous devriez penser EntityManager
. Devrions-nous le fermer après chaque persister/mettre à jour/supprimer ou non?
Création d'un EntityManagerFactory
est une opération assez coûteuse et doit être fait une fois pour la durée de vie de l'application (vous close
à la fin de l'application). Donc, non, vous ne devriez pas le fermer pour chaque opération de persistance/mise à jour/suppression.
Le EntityManagerFactory
est créé une fois pour toutes et vous obtenez généralement une EntityManager
par demande, qui est fermé à la fin de la demande (EntityManager
par demande est le modèle le plus courant pour une application client/serveur multi-utilisateurs).
Si nous ne le fermons pas, la connexion à la base de données restera-t-elle ouverte?
comme le laisse entendre, il est le EntityManager
qui est en fait associé à une connexion de base de données et la fermeture de la EntityManager
va effectivement libérer la connexion JDBC (le plus souvent, le retour à une piscine).
Si un EM détient des connexions, comment une connexion peut-elle rester ouverte si l'hôte ou le parent est fermé? Cela a-t-il du sens ? –