是否提交交易关闭会话?

Sag*_*ela 5 session hibernate transactions

我是hibernate的新手.

是的session.getTransaction().commit(),关闭会话?因为在api文档中没有提到它关闭会话.

在我的代码中我有

session.getTransaction().commit();
session.close();
Run Code Online (Sandbox Code Playgroud)

但我得到以下例外

org.hibernate.SessionException:Session已经关闭

如果我删除session.close(),那么我不会得到这个例外.

Dra*_*vic 3

您可以在这里找到更多相关信息。基本上,这取决于您如何获取会话以及执行的内容session.getTransaction().commit();(例如,如果您使用的某些框架注册了事务生命周期侦听器,则事务生命周期侦听器可能会在此处关闭会话)。

要检查它何时真正关闭,可以尝试在方法中设置断点AbstractSessionImpl.setClosed