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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
zmzmzmalo7 小时前
Linux ELF文件加载与内存管理揭秘
linux·网络·数据库
chuan.bai10 小时前
Java RAG 实战(第 11 篇):RAG 知识工作台网页
java·开发语言·人工智能
0x5313 小时前
网站通信(一)
java
Terra.K13 小时前
Java异常学习[特殊字符]
java·开发语言·学习
葡萄城技术团队14 小时前
InfluxDB 2\.x 深度解析:核心架构、Flux 函数与制造业落地指南(三)
java·开发语言·架构
Super 含14 小时前
Android 启动优化(五):线程、GC 与 IO 为什么会拖慢启动?
java·服务器·数据库
counting money14 小时前
Java IO流详解:从InputStream到文件操作实战
java·开发语言·python
ltl15 小时前
向量检索引擎选型:决策树、RAG 回链与开放问题
数据库
坚持学习前端日记15 小时前
Python SQLAlchemy ORM 从0到1精通实战手册(基础到复杂高阶)
数据库·python·oracle
灯澜忆梦15 小时前
【MySQL17】进阶篇 | InnoDB引擎
数据库·mysql