用hibernate处理数据的时候,出来这么个异常,以后注意session.flush( )
exceptionorg.hibernate.SessionException: Session is closed!
错误代码:
session = HibernateUtil.openSession();
session.beginTransaction();
String sql="from IfBid";
Query query = session.createQuery(sql);
session.getTransaction().commit();
list= (ArrayList) query.list();
session.close();
改正后
session = HibernateUtil.openSession();
session.beginTransaction();
String sql="from IfBid";
Query query = session.createQuery(sql);
list= (ArrayList) query.list();
session.flush();
session.getTransaction().commit();
在finally{}里面HibernateUtil.closeSession(session);
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lifesounds/archive/2008/04/16/2297447.aspx
在与事务结合的时候好像不用关闭session,
也就是说,事务和session.close()选择其中的一个就可以了 。
特别是在与Spring整合的时候用到了session这个对象,
可能是交给了 Spring管理之后就交给了事务来管理 了。