内部循环中的代码不会在Spring Transaction中回滚

时间:2010-10-02 10:27:18

标签: java spring ibatis

我在服务类中有以下代码结构。问题是在异常的情况下,事务只回滚“插入A()”。我正在使用spring-ibatis。

function save
{
 insert A();

 for loop_1()
 {
   insert B()
   insert C()
   insert D() 
 }

 for loop_2()
 {
  insert E()   
  insert F()  --> throws RunTimeException
 }
}

2 个答案:

答案 0 :(得分:0)

我认为你最好检查方法B(),C(),D(),E()的事务传播设置,并确保它们在方法A(),F的同一物理事务中被执行。 ()。

您使用哪一个,PROPAGATION_REQUIRED或PROPAGATION_REQUIRES_NEW?

答案 1 :(得分:0)

谢谢大家,我没有注意到我的一个表不是InnoDB(我使用的是mysql)。我将其更改为InnoDB,现在交易正常。