spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了!常见情况有
如下几种
1、发生自调用,类里面使用this调用本类的方法(this通常省略),此时这个this对象不是代理类,而
是UserService对象本身!
解决方法很简单,让那个this变成UserService的代理类即可!
2、方法不是public的
3、数据库不支持事务
4、没有被spring管理
5、异常被吃掉,事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)
02-16
242
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
05-23
381
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
03-07
221
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)