当我们需要在事务控制的service层类中使用try catch 去捕获异常后,就会使事务控制失效,因为该类的异常并没有抛出,就不会触发事务管理机制。怎样才能即使用try catch去捕获异常,而又让出现异常后spring回滚呢?
1 可在catch中抛出运行时异常throw new RuntimeException(e)
2 手动回滚TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
使得事务生效,异常回滚。
版权声明:本文为Mr_noSuch原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。