hibernate事务学习

今天在开发的时候,LJ说Hibernate的DAO类不具备事务管理,回来看了一下,不是不具备,是不能具备。

由于业务操作可能涉及到多个dao操作,如果在dao类加事务控制,有可能造成一个业务失败但却有部分成功的情况,这是一个非常恶心的事。至于多恶心我就不说了

然后看了一下网上的评论总体倾向于spring的来完成事务控制和使用ThreadLocal来作事务控制。

spring使用AOP在业务的切面进行事务控制这个很容易理解。以前在作核心平台的时候,YW也是这样使用的,但他的做法是对所有业务类的含有update字符串的方法进行事务操作,导致我们在有数据库更新的时候业务方法必须带update,我感觉这应该是最原始的事务控制方法了,说实话我现在都觉的很土。

第二种 ThreadLocal是一个线程共享解决方案,它把hibernate与数据库的连接session与线程进行绑定,具体实现可以google,这样就达到了一个线程只有一个session的效果,也就保证了在该线程我们只要做到在

servlet的开头开启事务,然后在最后提交事务,或者是在例外的时刻对事务进行回滚就可以达到一致的效果了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值