这就是我如何获得Hibernate Session并创建查询.
HSession.getSession().createQuery("query here").executeUpdate();
Run Code Online (Sandbox Code Playgroud)
和
Critaria cr=HSession.getSession().createCritaria(..).. ;
Run Code Online (Sandbox Code Playgroud)
HSession是我的Session工厂所在的位置,getSession()方法返回一个新会话
(getSessionFactory().openSession();)
Run Code Online (Sandbox Code Playgroud)
我想知道是否
cr.list();会话还活着吗? 创建会话为
Session s = HSession.getSession();
s.createCriteria ...
是使用会话并使用它关闭它的方法s.close();吗?
是的,会话将一直存在,直到您关闭它.您可以对会话执行多个操作,但只会close()关闭它.
在您的情况下,看起来会话由任何东西控制HSession.您需要查看它以查看是否执行了任何事务,如何管理会话等.
我今天读了这篇文章......它说"第一次调用getCurrentSession()时会打开一个会话,而当事务结束时会关闭会话." 所以根据这个:如果你有一个交易缠绕它(你应该猜我)并调用transaction.commit()...会话关闭.
在你的情况下它应该仍然是开放的.
如果我错了,请纠正我......!:)
| 归档时间: |
|
| 查看次数: |
2847 次 |
| 最近记录: |