openSession()与getCurrentSession()区别:

标签: opensession getcurrentsession | 发表时间:2014-08-17 16:18 | 作者:hetongfei
出处:http://www.iteye.com
来自 http://blog.csdn.net/dy511/article/details/6166134
1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。
这里getCurrentSession本地事务(本地事务:jdbc)时要在配置文件里进行如下设置
    * 如果使用的是本地事务(jdbc事务)
<property name="hibernate.current_session_context_class">thread</property>
* 如果使用的是全局事务(jta事务)
<property name="hibernate.current_session_context_class">jta</property>
3.getCurrentSession () 使用当前的session,openSession() 重新建立一个新的session
4.在一个应用程序中,如果DAO 层使用Spring 的hibernate 模板,通过Spring 来控制session 的生命周期,则首选getCurrentSession ()。
5.在 SessionFactory 启动的时候, Hibernate 会根据配置创建相应的 CurrentSessionContext ,在 getCurrentSession() 被调用的时候,实际被执行的方法是 CurrentSessionContext.currentSession() 。在 currentSession() 执行时,如果当前 Session 为空, currentSession 会调用 SessionFactory 的 openSession 。所以 getCurrentSession() 对于 Java EE 来说是更好的获取 Session 的方法。


已有 1 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [opensession getcurrentsession] 推荐:

openSession()与getCurrentSession()区别:

- - Java - 编程语言 - ITeye博客
来自 http://blog.csdn.net/dy511/article/details/6166134. 1.getCurrentSession创建的session会和绑定到当前线程,而openSession不会. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭.

openSession和getCurrentSession的比较

- - 互联网 - ITeye博客
在比较openSession和getCurrentSession这两个方法之前,我们先认识一下这两个方法. 在进行配置信息管理时,我们一般进行一下简单步骤:.    Configuration cfg = new Configuration();  // 获得配置信息对象.    SessionFactory sf = cfg.configure().buildSessionFactory(); //解析并建立Session工厂.