原文:解决@Transactional事务在类内部方法调用不生效

代码示例 现象描述 addInfo方法上没有事务注解,addOne方法上有事务注解,此时运行addInfo调用addOne方法,不会产生事务,测试数据遇到异常没有回滚。如果从外部类直接调用addOne方法,则事务是可以正常生效的。 解决方案 使用AopContext.currentProxy 来获取代理类再调用,如下 新问题 再次运行,如果没有添加expose proxy true 这个属性 暴露 ...

2021-03-26 17:53 0 312 推荐指数:

查看详情

分析spring事务@Transactional注解在同一个中的方法之间调用不生效的原因及解决方案

问题: 在Spring管理的项目中,方法A使用了Transactional注解,试图实现事务性。但当同一个class中的方法B调用方法A时,会发现方法A中的异常不再导致回滚,也即事务失效了。 当这个方法被同一个调用的时候,spring无法将这个方法加到事务管理中。 我们来看一下生效 ...

Thu Dec 19 18:58:00 CST 2019 1 12450
java注解@Transactional事务调用不生效问题及解决办法

@Transactional 内部调用例子 在 Spring 的 AOP 代理下,只有目标方法由外部调用,目标方法才由 Spring 生成的代理对象来管理,这会造成自调用问题。若同一中的其他没有@Transactional 注解的方法内部调用有@Transactional 注解的方法 ...

Thu Jul 23 22:15:00 CST 2020 0 5290
java @Transactional 注解内部调用不回滚问题解决

今天帮同事看一个问题,关于事务在同一个中,一个方法调用另一个方法 事务不回滚问题,这问题以前也遇到过,不过这次是在springboot项目中来解决,现在直接把方法写出来。 1. POM文件引入 如下: 2. 在springboot启动上,添加注解,如下: 3. ...

Fri Mar 12 06:33:00 CST 2021 0 372
@Transactional事务内部commit方法

以下代码块可以在事务内部异步提交数据库 TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronizationAdapter() { public void ...

Mon Jun 08 05:30:00 CST 2020 0 1804
spring aop 内部方法调用事务生效问题解决

方法1: 基于 proxy 的 spring aop 带来的内部调用问题可以使用 AopContext.currentProxy() 强转为当前的再调用就可以解决了 例如: 错误用法:public Account getAccountByName2(String userName ...

Thu Aug 16 20:12:00 CST 2018 0 1399
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM