Mi sono chiesto, la chiusura dello EntityManagerFactory
è simile alla chiusura della connessione al database jdbc?
Questo non è esattamente vero ma chiudere un EntityManagerFactory
sarebbe più vicino a distruggere un intero lotto di connessioni. Se vuoi pensare a una connessione JDBC, dovresti pensare a EntityManager
.
Dovremmo chiuderlo dopo ogni persistenza/aggiornamento/eliminazione oppure no?
creazione di un EntityManagerFactory
è un'operazione piuttosto costoso e dovrebbe essere fatto una volta per la durata dell'applicazione (si close
alla fine della domanda). Quindi no, non dovresti chiuderlo per ogni operazione persist/update/delete.
Il EntityManagerFactory
è creato una volta per tutte e di solito si ottiene un EntityManager
per ogni richiesta, che è chiuso alla fine della richiesta (EntityManager
per richiesta è il modello più comune per un'applicazione client/server multiutente).
Se non lo chiudiamo, la connessione al database rimarrà aperta?
Come accennato, è il EntityManager
che è in realtà associato ad una connessione al database e chiudendo la EntityManager
sarà effettivamente rilasciare la connessione JDBC (il più delle volte, tornare a una piscina).
fonte
2010-07-28 07:21:12
Se un EM tiene Connessioni come può rimanere aperta una connessione se "host" o "genitore" sono chiusi? Ha senso ? –