Ich frage mich nur, schließend EntityManagerFactory
ist ähnlich mit jdbc Datenbankverbindung schließen?
Dies ist nicht ganz richtig, aber ein EntityManagerFactory
Schließung wäre näher an einen ganzen Verbindungspool zu zerstören. Wenn Sie JDBC-Verbindung denken möchten, sollten Sie denken, EntityManager
.
Sollten wir es nach jeder Persistenz schließen/aktualisieren/löschen oder nicht?
Erstellen ein EntityManagerFactory
eine ziemlich teuere Operation und soll einmal für die Lebensdauer der Anwendung durchgeführt werden (Sie es am Ende der Anwendung close
). Also, nein, Sie sollten es nicht für jede Persistenz/Aktualisierung/Löschung schließen.
The EntityManagerFactory
ein für alle Mal erstellt wird, und Sie in der Regel ein EntityManager
pro Anfrage erhalten, die am Ende des Antrags geschlossen ist (EntityManager
pro Anfrage ist das häufigste Muster für eine Multi-User-Client/Server-Anwendung).
Wenn wir es nicht schließen, bleibt die Datenbankverbindung geöffnet?
Wie angedeutet, ist es die EntityManager
ist, die tatsächlich zu eine Datenbankverbindung zugeordnet ist, und Schließen der EntityManager
wird die JDBC-Verbindung tatsächlich freigeben (meistens, bringen Sie es zu einem Pool).
Wenn ein EM Verbindungen hält, wie könnte eine Verbindung geöffnet bleiben, wenn der "Host" oder "Eltern" geschlossen ist? Ist das sinnvoll ? –