是否提交交易关闭会话?

时间:2015-05-22 10:05:11

标签: hibernate session transactions

我是hibernate的新手。

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

在我的代码中我有

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

但是我得到了以下异常

  

org.hibernate.SessionException:会话已经关闭

如果我删除了session.close(),那么我就不会遇到此异常。

1 个答案:

答案 0 :(得分:2)

您可以找到有关它的更多信息here。基本上,这取决于您获取会话的方式以及session.getTransaction().commit();中执行的操作(例如,如果您使用的某个框架注册了它们,则事务生命周期监听器可能会关闭会话。)

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