开发者社区 问答 正文

seata 分布式事务不生效

请问@GlobalTransactional是否支持嵌套,在调试过程中发现一个类A,下有两个 public的方法 m1、m2,m1方法调用了m2,@GlobalTransactional注解标识在m2上,GlobalTransactionalInterceptor拦截代理的访问为m1,而不是m2,导致获取不到注解对象,最终使分布式事务不生效

展开
收起
一人吃饱,全家不饿 2021-02-02 11:08:48 7338 分享
分享
版权
来自: 阿里开源 举报
2 条回答
写回答
取消 提交回答
  • 使用seata 控制分布式事务时 要让seata空时 数据源吗?

    2021-10-25 21:16:16 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 这个是最常见的springAOP不生效的一个坑,应该要这样写。

    @ Service
    public class Service1 {
      @ Autowired
      private Service1 self;
    
      public void m1() {
          //this.m2(); // 类内部直接调用,不会触发AOP
          self.m2();
      }
    
      @ GlobalTransactional
      publiv void m2() {
      }
    }
    
    2021-02-02 11:08:54 举报
    赞同 1 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等