Hibernate中,将session绑定到线程时,在保存和查询数据的代码里,要正确的关闭session

比如有个保存的方法

// 保存

public void save(){

Transaction t = XXX

Session s = getSession.beginTransaction();

XXX

s.save();

XXX

// 关闭session

HibernateFactory.closeSession();

}

 

///查询

public void query(){

 List list = query.list();

// 关闭session

HibernateFactory.closeSession();

}

public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);
        if (session != null) {
            session.close();
        }
    }

如果保存的时候,不调用相应代码正确的关闭session,就可能出现的情况是:已经保存了数据,数据库也改了,但页面上时而又显示以前的数据。

 

posted @ 2015-08-21 17:55  jmStatham  阅读(611)  评论(0编辑  收藏  举报