Hibernate中同一个线程获取相同session
来源:互联网 发布:淘宝退款商家不处理 编辑:程序博客网 时间:2024/05/17 22:01
为什么
在Hibernate中事物是与session相关的,一般情况下session会在Service层创建,
Service中
Session session = HibernateUtils.openSession()
tx = session.beginTransaction();
dao.save();
dao.xxx();
tx.commit();
在Dao中就需要使用session.save()或者session.xxx(),而为了在同一个事物中执行这两个方法,所以在这两个方法中应该使用与Service中一样的session
怎么办
一 将session传递给dao层,即给为dao.save(session,obj)
二 session对象的生命周期与当前线程绑定
1.在hibernate.cfg.xml中定义常量
<property name="hibernate.current_session_context_class">thread</property>
2.使用
在HibernateUtils里面添加一个方法
public Session getCurrentSession(){return sessionFactory.getCurrentSession;}
3.注意
通过该方法获得的session对象,都不需要手动关闭,因为当当前线程结束的时候会自动关闭该session,如果手动调用的话还会出错
因为如果已经手动关掉了,线程结束的时候又关掉一次,就是重复关闭一个对象,显然会出错
0 0
- Hibernate中同一个线程获取相同session
- 在hibernate中同一个session里面有了两个相同标识但是是不同实体。
- hibernate中是否存在多个线程同时访问同一个Session?
- 同一个控制器中无法获取session
- Servlet、 Hibernate 中 Session 线程 安全问题
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- Hibernate中Session与本地线程绑定
- hibernate中session的线程安全问题
- hibernate中session的线程安全问题
- Hibernate中使用帮助类获取session
- session 同一个网站获取不到的问题
- Hibernate Session 获取connection
- 获取hibernate的Session
- Hibernate Session 获取connection
- Hibernate学习笔记(二)——Hibernate的一些基本配置
- linux的crontab定时任务
- 10个最好的游戏开发在线资源
- Hololens 学习摘要及翻译记录 六 Spatial sound
- 王爽汇编第二版第二章答案
- Hibernate中同一个线程获取相同session
- 刘汝佳紫书白书题集
- 【Apio2009】Bzoj1179 Atm
- 代理服务器与NAT服务器
- Golang 迅雷下载器SDK
- 第三周项目4-顺序表应用(2)
- 第四周项目1——建立单链表
- ListView中移除某个item的Remove()方法的应用
- NYOJ2 括号配对问题(栈的运用)