首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Spring的迭代事务有关问题

2012-01-24 
Spring的迭代事务问题比如我有个迭代方法 (以下代码我是我临时敲的,大家知道个意思就行了)Java codeint i

Spring的迭代事务问题
比如我有个迭代方法 (以下代码我是我临时敲的,大家知道个意思就行了)

Java code
int i = 0;boolean flag = true;private void mtd(Object a){   service.save(a);   if(flag){        mtd(b);        flag = false;   }   if(++i=2){      throw new RuntimeExcetion("exception")   }}


我自己调用自己 然后这个方法的事务设置为NESTED
那 在第二次调用时抛出异常 第一次也会回滚吗????

[解决办法]
没看懂你什么意思,给你举个例子:
Java code
public void myMethodA(){       myMethodC();       myMethodB();    }首先我们给B方法配置好我们的NESTED属性,其他方法默认。如果B方法执行失败他会回滚,但是C方法不会受他的影响,事务会正常提交。但是如果C方法执行失败,不论B方法执行是否成功,事务都不会提交。(注意B方法在另外一个类中)
[解决办法]
第一次不会回滚,因为嵌套的事务理论上实现了隔离机制,即子事务的回滚不会影响包裹事务的提交。用PROPAGATION_REQUIRED就是回滚。

热点排行