0

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

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

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

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

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

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


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

session.saveOrUpdate(obj);

commit仅对hsmobject:就足够了hsm.commit();,还是我也应该这样做session.close();

4

1 回答 1

1

我已经在这里回答过了。

要回答另一部分,您不必担心关闭会话,因为只要您使用HibernateSessionManager.

try {
   do_stuff(hibernateSessionManager.getSession());
   hibernateSessionManager.commit();
}catch(Exception ex){
   hibernateSessionManager.abort();
}
于 2013-03-21T15:07:11.737 回答