getCurrentSession()与openSession()的区别
来源:互联网 发布:中国古代名言警句软件 编辑:程序博客网 时间:2024/06/11 15:44
getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()
创建的session则不会
* 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()
创建的session必须手动关闭
2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
* 如果使用的是本地事务(jdbc事务)
<property name=”hibernate.current_session_context_class”>thread</property>
* 如果使用的是全局事务(jta事务)
<property name=”hibernate.current_session_context_class”>jta</property>
getCurrentSession()与openSession()关联
在 SessionFactory 启动的时候, Hibernate 会根据配置创建相应的 CurrentSessionContext ,在 getCurrentSession() 被调用的时候,实际被执行的方法是 CurrentSessionContext.currentSession() 。在 currentSession() 执行时,如果当前 Session 为空, currentSession 会调用 SessionFactory 的 openSession 。所以 getCurrentSession() 对于 Java EE 来说是更好的获取 Session 的方法。
- getCurrentSession 与 openSession() 的区别 getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession()与openSession()的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- openSession与getCurrentSession的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别 .
- getCurrentSession 与 openSession() 的区别
- openSession与getCurrentSession的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession与openSession的区别
- getCurrentSession()与openSession()的区别
- v-text & v-html 指令
- 消息推送
- 简单密码
- 优雅地乱玩Linux-1-系统
- git远程库
- getCurrentSession()与openSession()的区别
- logback的使用和logback.xml详解
- Retrofit--创建一个可扩展的客户端
- Codeforces791 B. Bear and Friendship Condition
- 使用jstl保留两位小数
- TOJ 3384.sun and moon [Chinese]
- 优雅地乱玩Linux-2-zsh
- 四轴加速度计滤波
- sed使用技巧之--删除行