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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
小羊没烦恼!4 分钟前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
Databend8 分钟前
周年庆结束了,湖仓为什么还在高消费?
大数据·数据库·agent
笃行35022 分钟前
数据集成软件里最贵的一行字,叫“用同步工具做增量同步“
数据库
吴声子夜歌23 分钟前
Docker入门与实战——Etcd(高可用的键值数据库)
数据库·docker·etcd
刘 大 望27 分钟前
Agent 的规划与执行范式:Plan-Execute-Replan 与 ReAct
java·python·ai·chatgpt·langchain·ai编程
qq_白羊座1 小时前
Hologres / PostgreSQL jsonb 常用函数 & 操作符对照表
数据库·postgresql
千桐科技1 小时前
qData 数据中台专业版功能解析:告别 Excel 与 SQL 拼凑,打通系统合并的可追踪数据链路
数据库·sql·excel·qdata
const_qiu1 小时前
第四章 05:4.5 Multi-Agent —— 五个专职智能体协作
java·人工智能
A小码哥1 小时前
大模型成本怎么降,5 个动作先做前两个
java·前端·spring
鬼手点金1 小时前
构建有效 Agent 的核心原则
java·人工智能·git·学习·自动化