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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
电魂泡哥1 天前
SQL出现filesort 一定慢吗
数据库·sql
muddjsv1 天前
大中小型企业数据层配置规模分析与选型指南
数据库
Runawayliquor1 天前
opbase:CANN 所有算子的公共地基
大数据·数据库·人工智能·算法
yangshicong1 天前
第11章:结构化输出与数据提取 —— 让 AI 直接返回你想要的数据格式
数据库·人工智能·redis·python·langchain·ai编程
chimchim661 天前
pg dblink使用查询
数据库
Java面试题总结1 天前
java高频面试题(2026最新)
java·开发语言·jvm·数据库·spring·缓存
苦逼的猿宝1 天前
学生心理咨询评估系统
java·毕业设计·springboot·计算机毕业设计
隔窗听雨眠1 天前
doctype、charset、meta如何控制整个渲染流水线
java·服务器·前端
绝知此事1 天前
【算法突围 02】树形结构与数据库索引:树形结构与数据库索引:从 BST 到 B+ 树的演化与 MySQL 优化
数据库·mysql·算法·面试·b+树
牧羊狼的狼1 天前
浅谈电商下单微服务流程
spring·spring cloud·微服务