研究下hibernate的原理你就会发现。。
这个session不用关闭。。不会占用资源的

解决方案 »

  1.   

    你的Dao 是不是繼承BaseDaoHibernate
     如果是的話用 this.releaseSession(ses); 不用close掉
      

  2.   

       session不用关闭,楼上的都在开玩笑么?
       
       你用页面上的功能多操作几次,就知道资源有多浪费了。用过别忘记关哦!
      

  3.   

      汗。 一樓已經說的很清除。 locoasta 
     
    等 级:
     发表于:2007-10-26 12:00:241楼 得分:0 
    研究下hibernate的原理你就会发现。。 
    这个session不用关闭。。不会占用资源的 
     何況我說的是releaseSession(ses),看不懂?
      

  4.   

    我的问题有2
    1、DAO的finally中做session.close()后刷新页面为什么会出现在Session is closed 的错误,因为在factory中已经Session session = (Session) threadLocal.get() 并threadLocal.set(session)。这儿是问题12、DAO的finally中不关闭session后刷新页面成功,不报错。但本人对hibernate不了解,想知道不关闭是否会占用大量资源。谢谢
      

  5.   

    1,你調試一下 currentSession方法,慢慢查出原因。
    2,不會(說過2此勒  一樓說的很清楚),如果你不放心,可以使用releaseSession(ses)。祝你成功!
      

  6.   

    简单点说 hibernate就是做持久化的
    你这一开了立马就关掉
    那么hibernate的意义不就没了。
      

  7.   

    public static Session getSession() throws HibernateException {
            Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) {
    if (sessionFactory == null) {
    rebuildSessionFactory();
    }
    session = (sessionFactory != null) ? sessionFactory.openSession()
    : null;
    threadLocal.set(session);
    }        return session;
        }
      

  8.   

    确实不用关闭,既然用了Hibernate那么肯定要连接数据库,Hibernate在初始化时就会构建单例模式的Session连接对象。既然是单例模式就已经是单线程内最小开销的设计模式。大并发量 大数据还是严格关闭好点。