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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
phltxy22 分钟前
Redis 事务
数据库·redis·缓存
计算机安禾26 分钟前
【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit
java·c++·算法
康乾隆40 分钟前
SQL Server Always On 重新添加从库步骤
数据库·sqlserver
weixin199701080161 小时前
【保姆级教程】淘宝/天猫商品详情 API(item_get)接入指南:Python/Java/PHP 调用示例与 JSON 返回值解析
java·python·php
环流_1 小时前
redis核心数据类型在java中的操作
java·数据库·redis
雨辰AI1 小时前
SpringBoot3 项目国产化改造完整流程|从 MySQL 到人大金仓落地
java·数据库·后端·mysql·政务
一个天蝎座 白勺 程序猿1 小时前
存储治理:表空间自动目录创建与国产操作系统生态适配
数据库·kingbasees
带刺的坐椅1 小时前
Java 流程编排新范式 Solon Flow:一个引擎,七种节点,覆盖规则/任务/工作流/AI 编排全场景
java·spring·ai·solon·flow
2401_884454151 小时前
mysql处理复杂SQL性能_InnoDB优化器与MyISAM差异
jvm·数据库·python
知彼解己2 小时前
Arthas:Java生产环境问题排查利器,从入门到实战
java