交易应该回滚到这里吗?
@Service
public class Serv {
@Transactional
public void method1() {
method2();
}
private void method2(){
throw new RuntimeException();
}
}
或者它取决于什么?
((在今天之前,我对所描述的行为有100%的把握。但是,一名面试官说这要视情况而定。我不同意他的看法,但当然没有帮助。)
最佳/通常的结果是在您回答时回滚,但面试官说一般性陈述为取决于
也许面试官打算检查您是否知道何时不会按预期进行回滚
意味着您不应该假设@Transactional
确实在工作,应该首先检查它,因为如果@Transactional
不在工作,则不会回滚。
例如,在calling transactional method in same class的情况下,如果从同一类的method3()中调用method1(),则@Transactional
将不起作用,也不会回滚