spring 同类方法调用事务失效解决办法

可以使用AopContext.currentProxy()获取到当前类的代理对象,然后再用代理对象进行调用本类中的方法

如下 f1 和f2 属于同一个类

复制代码
    public voidf1() {
        
        ((本类名)AopContext.currentProxy()).f2();
      
  

    }
    
   @Transactional
   public f2() {
        
      
  

    }

AopContext.currentProxy()方法的使用场景还包括:‌

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
计算机毕设指导6几秒前
基于微信小程序的积分制零食自选平台【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·maven
神仙别闹2 分钟前
基于QT(C++)实现(图形界面)连连看
java·c++·qt
DFT计算杂谈5 分钟前
ABINIT能带计算数据处理脚本
数据库·人工智能
BioRunYiXue5 分钟前
双荧光素酶报告基因实验
java·运维·服务器·数据库·人工智能·数据挖掘·eclipse
Geoking.7 分钟前
深度理解 Java synchronized —— 从原理到实战
java·开发语言
数据皮皮侠12 分钟前
政府创新采购数据库(2016-2024)
大数据·数据库·人工智能·制造·微信开放平台
kkkkkkkkl2414 分钟前
MySQL 深分页查询优化实践与经验总结
数据库·mysql
未来影子18 分钟前
Java领域构建Agent新杀入一匹黑马(agentscope-java)
java·开发语言·python
数据知道18 分钟前
MySQL业务数据量增长到单表成为瓶颈时,该如何做?
数据库·mysql·mysql优化