怎样的SessionFactory管理会话?

问题描述 投票:5回答:1

我刚刚得到了Hibernate的Session和连接之间的关系。但现在,我得到了另一个问题:怎样的SessionFactory管理会话?在下面的代码段:保存一个DAO类的()方法:

Session session = sessionFactory.openSession();
   Transaction tx=null;
   tx=session.beginTransaction(); 
   session.save(transientInstance);
   session.flush();
   tx.commit();

当我们调用sessionFactory.openSession(),它会创建一个附加到当前线程(通过ThreadLocal的)一个新的会话,本次会议还附设一个JDBC连接,但是,正如你所看到的,我们不需要关闭会话(会话.close()),无论该连接。那么,什么是一个Hibernate会话,在什么情况下会被关闭的生命周期?自动?

hibernate session connection sessionfactory
1个回答
9
投票

我推荐的方法getCurrentSession因为只有用这种方法你必须要确保可能性会议将于休眠关闭

Configuration J2EE Current Session.

如果使用openSession方法,你必须自己关闭会话。之后,我开始接触Hibernate的工作,我认为这件事does'n我用哪一种方法,因为所有的会话将被自动关闭......我错了。我曾与从休眠SessionStatistics的公开会议上已经打开,永远不会关闭的SessionStatistics发现。 之后,我改变了所有调用getCurrentSessionimpl。会话-per-request模式打开的会话会下班后关闭。

Transactions Basics

© www.soinside.com 2019 - 2024. All rights reserved.