跳到正文
掘金· 武子康·· 24 天前AI 评分30

Spring 事务回滚反例:把调用移进同一个类后,自调用绕过代理

把调用移进同一个类之后:一次 Spring 事务回滚反例

AI 导读

一个基于 Spring Framework 5.3.9、H2 2.1.214、Java 17.0.12 的最小反例显示:外部调用带 @Transactional 的 write 抛异常后表里剩 0 行,而经同类 self 方法内部 this.write 调用则剩 1 行。原因是自调用不经过 Spring 代理,方法上的事务注解不再被拦截,H2 自动提交使插入在异常前已生效。

来源:掘金 · juejin.cn