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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
alphaTao7 分钟前
LeetCode 每日一题 2025/12/1-2025/12/7
数据库·算法·leetcode
苏小瀚9 分钟前
[算法]---分治-快排和归并
java·算法·leetcode
马克学长11 分钟前
SSM特种设备全生命周期管理系统8b729(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·特种设备管理·全生命周期
认真敲代码的小火龙12 分钟前
【JAVA项目】基于JAVA的宿舍管理系统
java·开发语言·课程设计
invicinble14 分钟前
关于maven的全域理解
java·spring boot·maven
黑马源码库miui5208616 分钟前
JAVA成人用品商城系统源码微信小程序+h5+安卓+ios
android·java·微信小程序
小馒头学python17 分钟前
openEuler 向量数据库:Milvus 相似度搜索性能测试
数据库·milvus·openeuler
杰克逊的日记20 分钟前
k8s是怎么管理GPU集群的
java·容器·kubernetes·gpu
正在走向自律24 分钟前
Oracle迁移实战:从兼容性挑战到平滑过渡金仓数据库的解决方案
数据库·oracle·国产数据库·金仓数据库·兼容性挑战·迁移成本
QAQalone31 分钟前
MySQL实际项目中常用的 DDL 模板
数据库·mysql