2

事务应该在这里回滚吗?

@Service
public class Serv {
    @Transactional
    public void method1() {
        method2();
    }
    private void method2(){
        throw new RuntimeException();
    }
}

或者它取决于什么?

(在今天之前,我对所描述的行为是 100% 确定的。但面试官说这取决于。我不同意他的观点,但当然没有帮助。)

4

1 回答 1

1

最佳/通常的结果是您回答的回滚,但面试官说了一般性陈述,视情况而定

也许面试官的意思是检查你是否知道它什么时候不会按预期回滚

这意味着您不应该假设@Transactional它实际上正在工作,应该首先检查它,因为如果@Transactional不工作,就不会回滚。

例如,在同一个类中调用事务方法的情况下,如果从同一个类中的 method3() 调用 method1()@Transactional将不起作用并且不会回滚

于 2019-12-12T14:39:12.737 回答