最近开发的时候,遇到一个 @Transactional注解失效的问题。
场景是:方法A和方法B都在同一个类里,方法A没有 @Transactional注解,方法B有 @Transactional注解,A方法调用B方法,结果事务一直没生效,debug日志说是事务没有被spring管理。后面研究好久发现了原因:这是由于Spring AOP代理的原因造成的,因为只有当 @Transactional 注解的方法在类以外被调用的时候,Spring 事务管理才生效。 解决办法就是避免同一类中自调用或者使用 AspectJ 取代 Spring AOP 代理。于是我新建了一个类,将方法B写在新类里,问题就解决了。
@Transactional失效问题
最新推荐文章于 2024-10-11 17:34:58 发布
本文探讨了Spring框架中@Transactional注解在特定情况下不生效的原因,并提供了解决方案。问题出现在同一类内部方法互相调用时,事务管理未能正常工作。通过调整方法所在的类来解决该问题。
4022

被折叠的 条评论
为什么被折叠?



