spring 手动事务回滚

一般情况下,如果让spring在service层回滚,就在service层的方法上配置异常回滚的代码,如:

@Transactional(rollbackFor = {Exception.class})
Boolean func1(int param){
//....
}

表示,捕捉到指定异常即回滚。有时代码本身执行时,并不抛出异常,但是不满足业务要求,所以需要手动回滚。

方案有两种:

方案1.需要手动抛出异常,以达到异常触动回滚的效果。

throw new RuntimeException();

方案2.代码手动显式回滚:

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

 

posted @ 2021-05-08 10:56  jiafeng  阅读(941)  评论(0编辑  收藏  举报