@Transactional的几种失效场景

前言

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

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

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

2、方法不是public修饰

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

3、方法中使用try catch

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

4、rollbackFor设置原因

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

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

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

6、待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值