Hibernate会话管理

时间:2011-11-21 12:54:18

标签: hibernate

我正在使用hibernate + jsp + postgres数据库

void TestMethod(){
HibernateSessionManager hs=new HibernateSessionManager();
Session ses=hs.preHandle();         
 //  Here  is my code that uses session
    ------
    ------
hs.afterCompletion(ses);
}

以下是preHandleafterCompletion

的代码
public Session preHandle() {

           SessionFactory sessionfactory =HibernateUtil.getSessionFactory();
       Session sess = sessionfactory.openSession();
     return sess;
}

public void afterCompletion(Session sess){

       if(sess!=null){  
              sess.flush();
        sess.close();
        sess=null;
      }
}

我正在使用preHandle()afterCompletion()方法来打开和关闭会话resp。它会在我的代码中引起任何问题吗?

而且,  HibernateSessionManager将创建的会话数量是否有限制,因此拒绝创建新的Session对象?

1 个答案:

答案 0 :(得分:0)

请务必阅读reference第12章。

您需要处理交易。像spring这样的框架对此有很大帮助。如果你有一个简单的webapp并且你不想使用spring,你可以在一个单独的servlet过滤器中处理你的hibernate会话和事务。