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,就可能出现的情况是:已经保存了数据,数据库也改了,但页面上时而又显示以前的数据。

原文地址:https://www.cnblogs.com/jianglong-liang/p/4748595.html