@Transactional的几种失效场景

前言

在使用事务的时候,偶尔会出现失效的情况,往往会让人摸不着头脑,明明已经加了@Transactional了啊,以下整理了几种可能导致事务失效的场景。

1、同一个类里的方法调用

加事务的方法不会被spring aop所代理的对象管理,所以无效。

2、方法不是public修饰

computeTransactionAttribute方法在获取Transactional注解信息时, 会检查目标方法的修饰符是否为 public,不是 public则不会获取@Transactional 的属性配置信息

3、方法中使用try catch

如果catch了异常 处理完没有抛出 那么也会导致事务失效

4、rollbackFor设置原因

rollbackFor设置了之后,事务只会在指定的设置下生效

5、数据库引擎不支持事务

比如 mysql的 innodb支持 但是myisam不支持

6、待补充

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章