当我关闭会话时,从Tapestry的HibernateSessionManager
获取
一些代码。考虑一些处理HibernateSessionManager
对象的方法:
public void foo(final HibernateSessionManager hsm) {
Session session = hsm.getSession();
第一种情况:会话仅用于从DB获取数据:
session.createQuery("from SomeTable ... blablabla").list();
我必须手动关闭session
(session.close();
)吗?
第二种情况:会话也用于保存/更新结果:
session.saveOrUpdate(obj);
commit
对象hsm
上的hsm.commit();
是否足够,{I}还是session.close();
?
答案 0 :(得分:1)
我已经回答了here。
要回答另一部分,只要您使用HibernateSessionManager
,就不必担心会因为tapestry-hibernate而关闭会话。
try {
do_stuff(hibernateSessionManager.getSession());
hibernateSessionManager.commit();
}catch(Exception ex){
hibernateSessionManager.abort();
}