4.openSession() 、 getCurrentSession()与session上下文
2015-06-27 14:19
323 查看
openSession()每次都打开一个新的session,用了openSession(),要记得close()掉
getCurrentSession()在session上下文(hibernate配置文件中的current_session_context_class有设定)找session,如果有,则返回该session,否则会新建一个session。不需要调用close(),transaction commit后会自动关闭。openSession()与getCurrentSession()不能混用!
session上下文在hibernate配置文件中(hiberbate.cfg.xml)设置,<property name="current_session_context_class">thread/jta</property>
事务可以简单分为两种:connection事务和jta事务。
thread是通过connection对象来管理事务,不能管理分布式的事务,属于connection事务
jta(Java Transaction API)可以管理分布式事务。它需要用到多个connection对象,与不同的数据库系统进行交互,此时jta采用第三方的事务管理器(transaction manager)统一管理不同的connection事务。
getCurrentSession()在session上下文(hibernate配置文件中的current_session_context_class有设定)找session,如果有,则返回该session,否则会新建一个session。不需要调用close(),transaction commit后会自动关闭。openSession()与getCurrentSession()不能混用!
session上下文在hibernate配置文件中(hiberbate.cfg.xml)设置,<property name="current_session_context_class">thread/jta</property>
事务可以简单分为两种:connection事务和jta事务。
thread是通过connection对象来管理事务,不能管理分布式的事务,属于connection事务
jta(Java Transaction API)可以管理分布式事务。它需要用到多个connection对象,与不同的数据库系统进行交互,此时jta采用第三方的事务管理器(transaction manager)统一管理不同的connection事务。
相关文章推荐
- Ubuntu14.04安装docker
- Linux基础之常识(一)
- open函数
- nginx 限制IP
- Java开发牛人十大必备网站
- windows下copy批处理命令
- Linux下的一个图形管理工具webmin
- centos device eth0 does not seem to be present解决方法
- 图片下载时遇到Can't create handler inside thread that has not called Looper.prepare()解决办法
- Linux总线设备驱动模型学习
- tableview 刷新 @property属性的用法
- 实现虚拟机VMware上linux与windows互相复制与粘贴
- MBR、GRUB、Linux启动相关知识
- Linux中的常用内存问题检测工具
- Linux---修改用户的密码
- 在linux下利用nohup来后台运行java程序
- linux6.4DNS辅助
- CURL Shell下curl的使用
- Linux---如何将普通用户加入root用户组
- redhat 替换centos yum 后,安装wireshark 无法使用