我刚刚得到了 Hibernate Session 和 Connection 之间的关系。但是现在,我又得到一个问题:hibernate sessionfactory 是如何管理会话的?在以下代码段中:DAO 类的 save() 方法:
Session session = sessionFactory.openSession();
Transaction tx=null;
tx=session.beginTransaction();
session.save(transientInstance);
session.flush();
tx.commit();
当我们调用 时sessionFactory.openSession()
,它会创建一个新的会话附加到当前线程(通过 ThreadLocal),这个会话也附加到一个 JDBC 连接,但是,正如你所看到的,我们不需要关闭会话(session.关闭()),既不是连接。那么,Hibernate 会话的生命周期是什么,在什么情况下会关闭呢?自动地?