【知识整理】Hibernate-管理Session
2017-04-07 09:47
357 查看
1.在Hibernate的配置文件中,hibernate.current_session_context_class属性用于指定Session管理方式,可选值包括:
(1)thread:Session对象的生命周期与本地绑定线程
注:若Session是由thread管理的,则在提交或回滚事务时,已经关闭。
(2)jta*:Session对象的生命周期与JTA事务绑定
(3)managed:Hibernate委托程序管理Session对象的声明周期
2.Hibernate配置文件-hibernate.cfg.xml中进行如下配置选择Session管理方式:
<property name="current_session_context_class">thread</property> //选择Session管理方式为thread3.Hibernate按以下规则把Session与本地线程绑定。
(1)当一个线程(threadA)第一次调用SessionFactory对象的getCurrentSession()方法时,该方法会创建一个新的Session(sessionA)对象,把该方法与threadA绑定,并将sessionA返回.
(2)当threadA再次调用SessionFactory对象的getCurrentSession()方法时,该方法将返回sessionA对象.
(3)当threadA提交sessionA对象关联的事务时,Hibernate会自动flush sessionA对象的缓存,然后提交事务,关闭sessionA对象,当threadA撤销sessionA对象关联的事务时,也会自动关闭sessionA对象。
(4)若threadA再次调用SessionFactory对象的getCurrentSession()方法时,该方法会又创建一个新的Session(sessionB)对象,把该对象与threadA绑定,并将sessionB返回。
(1)thread:Session对象的生命周期与本地绑定线程
注:若Session是由thread管理的,则在提交或回滚事务时,已经关闭。
(2)jta*:Session对象的生命周期与JTA事务绑定
(3)managed:Hibernate委托程序管理Session对象的声明周期
2.Hibernate配置文件-hibernate.cfg.xml中进行如下配置选择Session管理方式:
<property name="current_session_context_class">thread</property> //选择Session管理方式为thread3.Hibernate按以下规则把Session与本地线程绑定。
(1)当一个线程(threadA)第一次调用SessionFactory对象的getCurrentSession()方法时,该方法会创建一个新的Session(sessionA)对象,把该方法与threadA绑定,并将sessionA返回.
(2)当threadA再次调用SessionFactory对象的getCurrentSession()方法时,该方法将返回sessionA对象.
(3)当threadA提交sessionA对象关联的事务时,Hibernate会自动flush sessionA对象的缓存,然后提交事务,关闭sessionA对象,当threadA撤销sessionA对象关联的事务时,也会自动关闭sessionA对象。
(4)若threadA再次调用SessionFactory对象的getCurrentSession()方法时,该方法会又创建一个新的Session(sessionB)对象,把该对象与threadA绑定,并将sessionB返回。
相关文章推荐
- hibernate 管理 Session(单独使用session,非spring)
- 错误整理(三)hibernate-configuration" 的内容必须匹配 "(session-factory,security?)
- hibernate使用spring的事务管理器在测试dao的时候获取不到session
- Hibernate学习笔记----Session管理和批量操作
- 【Hibernate】Hibernate系列8之管理session
- spring管理hibernate4 transaction getCurrentSession为什么报错?
- Hibernate——ThreadLocal模式下管理的Session会在事务提交后自动关闭
- hibernate 之session 事务管理
- Hibernate(八)---管理Session
- 廖雪峰老师Git教程知识整理(3.3)-分支管理
- 解决Hibernate的session.save/update/delete操作无效问题(事务管理)
- Hibernate用ThreadLocal模式 (线程局部变量模式) 管理Session
- 日常知识整理---web项目字典设计与管理
- hibernate简单事例,注意事项,保存,更新,删除,session,Query,Criteria查询_Hql与Criteria查询的补充知识
- Hibernate之管理session与批处理
- spring整合hibernate关于session的管理 .
- 操作系统知识整理2:存储管理
- Hibernate知识整理4---关系映射及持久化对象
- hibernate 工具类 统一管理session
- Hibernate深入浅出(十二)Hibernate实用技术(分页、Session管理、Spring Framework)