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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
omenkk714 小时前
【MySQL专题】1.一条更新SQL语句是如何执行的
数据库·sql·mysql
2301_8092445314 小时前
mysql如何处理大量重复值索引_mysql索引存储特征分析.txt
jvm·数据库·python
要开心吖ZSH15 小时前
Java AI Agent 开发中的 RAG 实现方案及小白入门指南
java·ai·agent·rag
掉鱼的猫15 小时前
Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
java·workflow
Lehjy15 小时前
【MySQL】库的操作
数据库·mysql·oracle
2401_8844541515 小时前
如何管理只读表空间的备份_跳过只读表空间的RMAN优化策略
jvm·数据库·python
Languorous.15 小时前
MySQL CRUD实操详解:插入、查询、修改、删除,附可直接运行示例
数据库·mysql
woxihuan12345615 小时前
CSS移动端实现响应式导航菜单_利用媒体查询切换显示隐藏状态
jvm·数据库·python
Aaa1111144315 小时前
四类地址 逻辑地址 线性地址 虚拟地址 物理地址
java
小则又沐风a15 小时前
深入了解进程概念 第二章
java·linux·服务器·前端