嵌套事务


//serviceA.java
methodA(){
for(i<n){
methodB();
}
//throw an exception here.
}
//serviceB.java
methodB(){
List list = query("select from Subject where ...");
for(list){
otherBusiness(subject);
delete(subject);
}
}

环境:框架SSH,methodA、methodB事务控制使用
<prop key="*">PROPAGATION_REQUIRED,-java.lang.Throwable</prop>

表象:在methodA中循环了n次methodB,执行到异常处,发现methodB被提交了n-1次,最后一次methodB被会滚
原因:对Subject的操作应该是在对该表的查询时query(sql)被强制提交了
求教:我目前的做法是将query(sql)操作提到methodA,求教更好的解决方法
新年快乐!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值