Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does committing transaction close session?

I am new to hibernate.

Does session.getTransaction().commit(), close the session? Because in the api documentation it is not mentioned that it closes the session.

In my code I have

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

But I get following exception

org.hibernate.SessionException: Session was already closed

If I remove session.close(), then I do not get this exception.

like image 609
Sagar Vaghela Avatar asked May 22 '15 10:05

Sagar Vaghela


1 Answers

You can find more info about it here. Basically, this depends on how you obtained the session and what is performed in session.getTransaction().commit(); (transaction lifecycle listeners may close session here if some framework you use registered them, for example).

To check when it is really closed, you can try to set a breakpoint in AbstractSessionImpl.setClosed method.

like image 198
Dragan Bozanovic Avatar answered Sep 27 '22 20:09

Dragan Bozanovic