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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
chen.@-@6 分钟前
后端下载限速(redis记录实时并发,bucket4j动态限速)
数据库·redis·缓存
真实的菜7 分钟前
消息队列处理模式:流式与批处理的艺术
java
王小小鸭16 分钟前
【Oracle APEX开发小技巧12】
数据库·oracle
噼里啪啦啦.21 分钟前
Spring事务和事务传播机制
数据库·sql·spring
盖世英雄酱5813622 分钟前
Java 内存管理技巧(新手必看集合篇)
java
码农小灰25 分钟前
Java 8 Stream API 入门到实践详解
java·java案例
搬码红绿灯28 分钟前
MySQL主从复制深度解析:原理、架构与实战部署指南
数据库·mysql·架构
步、步、为营30 分钟前
.NET 事件模式举例介绍
java·开发语言·.net
呼拉拉呼拉30 分钟前
Redis高可用架构
数据库·redis·架构·高可用架构
却尘30 分钟前
当全世界都在用 Rust 重写一切时,Prisma 却选择了反方向
前端·数据库·orm