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

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

如下 f1 和f2 属于同一个类

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

    }
    
   @Transactional
   public f2() {
        
      
  

    }

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

  1. 在同一类的非切面方法中获取代理对象,‌确保切面可以正常生效。‌
  2. 在不同类中,‌非事务方法调用事务方法时,‌确保事务生效。‌
  3. 在同一个类中,‌事务方法调用非事务方法时,‌事务仍然具有传播性,‌确保事务生效。‌
相关推荐
莫逸风20 小时前
【java-core-collections】红黑树深度解析
java·开发语言
李少兄20 小时前
Fastjson2 处理 JSON 字段大小写不一致的优雅方案
java·json
baidu_3409988220 小时前
JavaScript中函数调用的四种模式及其this绑定优先级表
jvm·数据库·python
吕源林20 小时前
SQL在JOIN语句中过滤非必要字段_减少传输开销与查询执行时间
jvm·数据库·python
计算机毕业设计指导20 小时前
基于SpringBoot+Vue3的荣成市健康管理平台设计与实现
java·spring boot·后端
qq_4240985620 小时前
如何在 Go 方法中正确修改切片类型
jvm·数据库·python
qq_3345635520 小时前
如何利用分区进行并行DML_开启会话并行针对不同分区同时执行更新
jvm·数据库·python
绩隐金20 小时前
SQL Server 开发系列(第八期):事务与并发控制(开发视角)——避免死锁与数据异常
数据库
渔民小镇20 小时前
5 分钟搭建桌游服务器:Room 模块 + 领域事件实战
java·运维·服务器·分布式·游戏
z44247532620 小时前
如何高效进行堆叠分类器的超参数调优:解决 GridSearchCV 卡顿问题
jvm·数据库·python