Yve*_*ssi 5 connection session hibernate sessionfactory
我刚刚获得了Hibernate Session和Connection之间的关系.但现在,我得到另一个问题:hibernate sessionfactory如何管理会话?在以下代码段中:DAO类的save()方法:
Session session = sessionFactory.openSession();
Transaction tx=null;
tx=session.beginTransaction();
session.save(transientInstance);
session.flush();
tx.commit();
Run Code Online (Sandbox Code Playgroud)
当我们调用时sessionFactory.openSession(),它将创建一个附加到当前线程的新会话(通过ThreadLocal),此会话也附加到JDBC连接,但是,正如您所看到的,我们不需要关闭会话(会话. close()),既不是连接.那么,Hibernate会话的生命周期是什么,在什么情况下会被关闭?自动?
我建议使用该getCurrentSession方法,因为只有使用此方法,您才有可能确保会话将从休眠状态关闭
如果使用此openSession方法,则必须自己关闭会话.在我开始使用hibernate后,我认为无论我使用哪种方法都没关系,因为所有会话都将自动关闭...我错了.我发现使用来自hibernate
SessionStatistics的SessionStatistics
,打开的会话已经打开并且从未关闭过.
在我改变所有来电getCurrentSession和之后impl.每个请求的会话模式打开会话将在下班后关闭.
交易基础.