public void savePerson(Person person){
Session session=sessionFactory.getCurrentSession();
Transaction t=null;
try{
t=session.beginTransaction();
session.save(person);
t.commit();
}catch(HibernateException e){
if(t!=null)
t.rollback();
}finally{
if(session!=null)
session.close();
}
}
会抛异常org.hibernate.SessionException: Session was already closed
换成openSession()就不会抛异常。
什么个情况,求解
Session session=sessionFactory.getCurrentSession();
Transaction t=null;
try{
t=session.beginTransaction();
session.save(person);
t.commit();
}catch(HibernateException e){
if(t!=null)
t.rollback();
}finally{
if(session!=null)
session.close();
}
}
会抛异常org.hibernate.SessionException: Session was already closed
换成openSession()就不会抛异常。
什么个情况,求解
需要手动的关闭Session。
2、getCurrentSession从上下文找,如果有,用原来的,如果没有,建新的
事务提交会自动关闭close。