例如:MySQL中 ,MyISAM 引擎是不支持事务,要支持事务都会使用 InnoDB引擎。
解决方法:使用支持事务的数据库引擎。
例如:service层的类上面没有加@Service注解,导致这个Bean没有被Spring管理,那么注解也是会失效的。
例如:类中有方法A(),方法B(),A调用了B,B方法上使用了事务注解,此时事务会失效。
解决办法:将B()方法写到一个新的类里面,交给Spring管理,然后A方法使用外部调用的方式调用B方法。
事务注解修饰的方法不是公共的,事务也会失效。
rollbackFor中指定的异常和你代码抛出的异常不一致。
如果业务代码里面的异常被捕获,事务也会失效。