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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
devpotato8 分钟前
缓存与数据库更新顺序不一致问题
java·数据库·redis
天若有情67312 分钟前
Node+MySQL小型全栈笔记项目实战课程分享
数据库·笔记·mysql
xcl092519 分钟前
酒馆预约系统开发实战:从需求分析到上线全流程指南
java·spring boot·需求分析
Kyrie_kk28 分钟前
Java--IO--Path文件访问
java·后端
qinqinzqq32 分钟前
Maven POM 格式、Schema 与 XSD:一篇讲透
java·maven
wxwx_bscxy32242 分钟前
基于springboot宠物领养系统的设计与实现
数据库·spring boot·后端·spring·宠物
o盟1 小时前
maven本地仓库有 总是去私仓中下载
java·maven·intellij-idea
devpotato1 小时前
Java 批量并发请求:从“能并发“到“结果按完成顺序可用“的三种写法与选型
java
九月要晚安1 小时前
达梦DW与AFC对比
数据库
实战派K8S&DB1 小时前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb