我是hibernate的新手。
请session.getTransaction().commit()
关闭会话吗?因为在api文档中没有提到它关闭会话。
在我的代码中我有
session.getTransaction().commit();
session.close();
但是我得到了以下异常
org.hibernate.SessionException:会话已经关闭
如果我删除了session.close()
,那么我就不会遇到此异常。
答案 0 :(得分:2)
您可以找到有关它的更多信息here。基本上,这取决于您获取会话的方式以及session.getTransaction().commit();
中执行的操作(例如,如果您使用的某个框架注册了它们,则事务生命周期监听器可能会关闭会话。)
要检查它何时真正关闭,您可以尝试使用AbstractSessionImpl.setClosed
方法设置断点。