实际开发中,有时没有异常发生,但是执行结果不是我们期望的情况,需要手动让事务回滚
需求:开支单保存
原来的代码:
修改后的代码:
Spring控制事务下手动回滚事务的方法:
在实际开发中,有时并没有异常发生,但是由于事务结果未满足具体业务需求,所以我们不得不手动回滚事务!
有如下两种方法:
①手动抛出异常(如果你没有配置一般异常事务回滚,请抛出运行时异常)
if(){
}else{
throw new RuntimeException();
}
②编程式实现手动回滚
if(){
}else{
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}