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