提交事务会关闭会话吗?

6

我是hibernate的新手。

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

在我的代码中,我有:

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

但我遇到了以下异常:

org.hibernate.SessionException: 会话已关闭

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

1个回答

3
您可以在这里找到更多相关信息。基本上,这取决于您获取会话的方式以及在session.getTransaction().commit();中执行了什么操作(例如,如果您使用的某个框架注册了事务生命周期侦听器,则它们可能在此处关闭会话)。
要检查它何时真正关闭,您可以尝试在AbstractSessionImpl.setClosed方法中设置断点。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接