SpringBoot事务@Transactional失效的常见问题之一

SpringBoot事务 | 未生效 | 无效 | 不生效 | 不回滚 | 不起作用
如果你使用了 @Transactional 和 @EnableTransactionManagement 没有生效,那么你看看在事务注解包含的方法内是否使用try-catch了。默认事务回滚对于try-catch的代码不会生效,如果必须try-catch又要事务生效,则需要在catch块内手动回滚。但是不推荐这么写,推荐Service层将异常往上抛,Controller层去捕获处理。

关于手动回滚,你可以看这里

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//进行手动回滚

//设置回滚点
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
....
//回滚到savePoint
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);

 

当然我遇到的只是事务不生效的原因之一,可能并不适用你所遇到的情况,仅作为备忘使用,如果能恰巧帮到你那就呱唧一下

posted @ 2020-06-24 13:57  之乏  阅读(1377)  评论(0编辑  收藏  举报