spring事务什么时候会失效?
spring事务什么时候会失效?
spring事务的原理是AOP,进行了切面增强,那么失效的根本原因是这个AOP不起作用了!
常见情况有如下几种
-
发生自调用,类里面使用this调用本类的方法(this通常省略),此时这个this对象不是代理类,而是 UserService对象本身!
解决方法很简单,让那个this变成User Service的代理类即可!
-
方法不是public的
@Transaction只能用于pub1ic的方法上,否则事务不会失效,如果要用在非pub1ic方法上,可以开启 AspectJ代理模式。
-
数据库不支持事务
-
没有被spring管理
-
异常被吃掉, 事务不会回滚(或者抛出的异常没有被定义,默认为RuntimeException)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)