2015-05-22 16 views
5

Sono nuovo di ibernazione.Il commit della transazione chiude la sessione?

session.getTransaction().commit(), chiudere la sessione? Perché nella documentazione API non è menzionato che chiude la sessione.

Nel mio codice ho

session.getTransaction().commit(); 
session.close(); 

ma ottengo seguente eccezione

org.hibernate.SessionException: Sessione era già chiusa

Se rimuovo session.close(), poi ho non ottenere questa eccezione

risposta

2

Potete trovare maggiori informazioni su di esso here. In sostanza, ciò dipende dal modo in cui hai ottenuto la sessione e da ciò che viene eseguito in session.getTransaction().commit(); (i listener del ciclo di vita della transazione potrebbero chiudere la sessione qui, ad esempio se alcuni framework utilizzati li hanno registrati).

Per verificare quando è realmente chiuso, è possibile provare a impostare un punto di interruzione nel metodo AbstractSessionImpl.setClosed.

Problemi correlati