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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
2401_cf16 分钟前
为什么hadoop不用Java的序列化?
java·hadoop·eclipse
帮帮志20 分钟前
idea整合maven环境配置
java·maven·intellij-idea
LuckyTHP43 分钟前
java 使用zxing生成条形码(可自定义文字位置、边框样式)
java·开发语言·python
技术宝哥2 小时前
Redis(2):Redis + Lua为什么可以实现原子性
数据库·redis·lua
无声旅者3 小时前
深度解析 IDEA 集成 Continue 插件:提升开发效率的全流程指南
java·ide·ai·intellij-idea·ai编程·continue·openapi
学地理的小胖砸4 小时前
【Python 操作 MySQL 数据库】
数据库·python·mysql
Ryan-Joee4 小时前
Spring Boot三层架构设计模式
java·spring boot
Hygge-star4 小时前
【数据结构】二分查找5.12
java·数据结构·程序人生·算法·学习方法
dddaidai1234 小时前
Redis解析
数据库·redis·缓存