当我们需要在事务控制的service层类中使用try catch 去捕获异常后,就会使事务控制失效,因为该类的异常并没有抛出,就不会触发事务管理机制。怎样才能即使用try catch去捕获异常,而又让出现异常后spring回滚呢?

1 可在catch中抛出运行时异常throw new RuntimeException(e)

2 手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

使得事务生效,异常回滚。


版权声明:本文为Mr_noSuch原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Mr_noSuch/article/details/105706420