什么时候我应该关闭会话,从Tapestry的HibernateSessionManager获取?

时间:2013-03-21 14:00:00

标签: java hibernate session tapestry

当我关闭会话时,从Tapestry的HibernateSessionManager获取

一些代码。考虑一些处理HibernateSessionManager对象的方法:

public void foo(final HibernateSessionManager hsm) {
    Session session = hsm.getSession();

第一种情况:会话仅用于从DB获取数据:

session.createQuery("from SomeTable ... blablabla").list();

我必须手动关闭sessionsession.close();)吗?


第二种情况:会话也用于保存/更新结果:

session.saveOrUpdate(obj);

commit对象hsm上的hsm.commit();是否足够,{I}还是session.close();

1 个答案:

答案 0 :(得分:1)

我已经回答了here

要回答另一部分,只要您使用HibernateSessionManager,就不必担心会因为tapestry-hibernate而关闭会话。

try {
   do_stuff(hibernateSessionManager.getSession());
   hibernateSessionManager.commit();
}catch(Exception ex){
   hibernateSessionManager.abort();
}