spring()调用b()和c()中的@Transactional传播

时间:2016-09-09 11:28:56

标签: java spring

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void a(){
    a();
    b();
}
@Transactional(propagation = Propagation.REQUIRED)
public void b(){
    //do something
}
@Transactional(propagation = Propagation.REQUIRED)
public void c(){
    //do something
}

方法b()和方法c()使用相同的事务?感谢。

1 个答案:

答案 0 :(得分:1)

我认为应该更正您的代码以防止递归调用,如下所示:

@Transactional(propagation = Propagation.NOT_SUPPORTED)
public void a(){
    c();
    b();
}

在这种情况下,c()和b()不会在事务中执行,@ Transactal注释仅在从外部类调用方法时才有效,而不是在同一个类中。