Spring声明式事务失效原因总结

发布时间:2024年01月16日

1、数据库不支持事务

例如:MySQL中 ,MyISAM 引擎是不支持事务,要支持事务都会使用 InnoDB引擎。

解决方法:使用支持事务的数据库引擎。

2、事务所在的Bean没有被Spring管理

例如:service层的类上面没有加@Service注解,导致这个Bean没有被Spring管理,那么注解也是会失效的。

3、同一类中的自身方法调用

例如:类中有方法A(),方法B(),A调用了B,B方法上使用了事务注解,此时事务会失效。

解决办法:将B()方法写到一个新的类里面,交给Spring管理,然后A方法使用外部调用的方式调用B方法。

4、方法不是Public

事务注解修饰的方法不是公共的,事务也会失效。

5、rollbackFor异常指定错误

rollbackFor中指定的异常和你代码抛出的异常不一致。

6、异常被捕获

如果业务代码里面的异常被捕获,事务也会失效。

文章来源:https://blog.csdn.net/qq_42251944/article/details/135615385
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。