我在服务类中有以下代码结构。问题是在异常的情况下,事务只回滚“插入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
}
}
答案 0 :(得分:0)
我认为你最好检查方法B(),C(),D(),E()的事务传播设置,并确保它们在方法A(),F的同一物理事务中被执行。 ()。
您使用哪一个,PROPAGATION_REQUIRED或PROPAGATION_REQUIRES_NEW?
答案 1 :(得分:0)
谢谢大家,我没有注意到我的一个表不是InnoDB(我使用的是mysql)。我将其更改为InnoDB,现在交易正常。