我什么时候应该关闭从 Tapestry 中的 HibernateSessionManager
获取的 session ?
一些代码。考虑一些处理 HibernateSessionManager
对象的方法:
public void foo(final HibernateSessionManager hsm) {
Session session = hsm.getSession();
<小时/>
第一种情况: session 仅用于从数据库获取数据:
session.createQuery("from SomeTable ... blablabla").list();
我必须手动关闭session
(session.close();
)吗?
第二种情况: session 也用于保存/更新结果:
session.saveOrUpdate(obj);
仅在 hsm
对象上commit
就足够了:hsm.commit();
,或者我也应该做session .close();
?
最佳答案
我已经回答过here 。
要回答另一部分,您不必担心关闭 session ,因为只要您使用 HibernateSessionManager
,Tapestry-hibernate 就会为您关闭 session 。
try {
do_stuff(hibernateSessionManager.getSession());
hibernateSessionManager.commit();
}catch(Exception ex){
hibernateSessionManager.abort();
}
关于java - 我什么时候应该关闭从 Tapestry 中的 HibernateSessionManager 获取的 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15549638/