hibernate的事务处理方式

session的对象并不是线程安全的,所以,通常,在每次用户请求时创建,请求结束时丢弃。
这通常会用到servletFilter来完成事务处理操作。这里还会有一个问题,因为session是非单线程的,那么filter如何知道这个session是哪一个线程的呢?我们可以借助一个ThreadLocal变量来把创建的session对象绑定处理线程上去。
Session s = (Session)session.get();//取出当前线程副本中的值
if (null == s){
      s = sessionFactory.openSession();
       session.set(s);//重新设置当前线程副本中的值
 }
不过,有些操作需要将多个请求放到同一个事务时,我们也可以用锁机制来实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值