java – 在类vs方法之间定义@Transactional有什么区别?

情况1

@Transactional
public class UserServiceImpl implements UserService {

    ...................
    public void method1(){
        try{
            method2();
        }catch(Exception e){

        }
    }
    public void method2(){

    }
}

案例2

public class UserServiceImpl implements UserService {

    ...................
    public void method1(){
        try{
            method2();
        }catch(Exception e){

        }
    }
    @Transactional
    public void method2(){

    }
}

在case1中,如果发生任何异常,则回滚正在工作,但是在情况2它不工作。如果我遵循case1,是否有任何性能问题?

最佳答案
@Transactionalon一个类适用于服务上的每个方法。这是一个捷径。通常,如果知道所有方法都将访问存储库层,则可以在服务类上设置@Transactional(readonly = true)。然后,您可以使用@Transactional在执行模型更改的方法上覆盖行为。性能问题1)与2)不知道。

转载注明原文:java – 在类vs方法之间定义@Transactional有什么区别? - 代码日志