spring中@Transactional事务,手动回滚时未进行回滚

一个类中

public class ATest {

@Transactional(rollbackFor = Exception.class)

public Result a() {

//调用删除方法

del()

//调用添加

add();

//调用添加时方法时,出现问题手动返回(不是抛出异常),但是对之前删除的数据要进行退回

if (!add().isOk()) {

//手动回退

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

return Result("错误");

}

return Result("成功");

}

@Transactional(rollbackFor = Exception.class)

public Result del() {

//调用删除数据库数据

}

@Transactional(rollbackFor = Exception.class)

public Result add() throws Exception {

//调用添加数据库数据

}

}

问:
在上述过程中,先调用删除方法,再调用添加时方法时(出现问题手动返回),对之前删除的数据要进行退回。但是后续进行的手动退回方式却没有将之前删除的数据回退成功,这种情况要如何处理?


回答:

我看了下你精简的代码

你的add()相当于执行了两遍你要确保你的Result是同一个

以上是 spring中@Transactional事务,手动回滚时未进行回滚 的全部内容, 来源链接: utcz.com/p/944328.html

回到顶部