1

たとえば、サービスがあります

public class ServiceA {

    @Transactional
    public void a() {
        ...
        serviceB.b()
        ...
    }
}

別のサービスのメソッドを呼び出す

public class ServiceB {

    @Transactional
    public void b() {
        ...
        graphRepository.save(..)
        ...
    }
}

GraphRepository のメソッドを呼び出します。

GraphRepository メソッドの実行中に問題がなければ、問題なく動作しますが、GraphRepository で例外が発生した場合、ロールバックは機能せず、リモート データベースへのすべての呼び出しがブロックされます。

b() の Transactional アノテーションを削除すると、GraphRepository で例外が発生した場合でも、正常に動作します。

この振る舞いを説明することはできません。

手伝って頂けますか?

4

1 に答える 1