@Transactional和@Async一起使用,事务失效问题解决

原因:

  • 同一个类内这样调用的话,只有第一次调用了动态代理生成的ProxyClass,之后一直用的是不带任何切面信息的方法本身

解决办法

  • 将需要事务的方法放到另一个类中。

例子

@Component
public class A {

    @Resource
    private B b;

    @Async
    public void test(){
        b.dd();
    }
}
@Component
public class B {

    @Transactional
    public void dd(){

    }
}


版权声明:本文为a_hasaigei原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。