簡體   English   中英

如果調用在 Spring 中拋出 RuntimeException 的私有方法,@Transactional 方法是否應該回滾?

[英]Should @Transactional method roll back in case of calling a private method which throws RuntimeException in Spring?

交易應該在這里回滾嗎?

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

或者它取決於什么?

(在今天之前,我對所描述的行為有 100% 的把握。但是面試官說這要視情況而定。我不同意他的看法,但這當然沒有幫助。)

最佳/通常的結果是你回答的回滾,但面試官說的是一般性陳述,這取決於

也許面試官的意思是檢查你是否知道它什么時候不會按預期回滾

這意味着您不應該假設@Transactional實際上在工作,應該首先檢查它,因為如果@Transactional不工作,則不會回滾。

例如,如果在同一個類中調用事務方法,如果從同一個類中的 method3() 調用 method1() @Transactional將不起作用並且不會回滾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM