たとえば、サービスがあります
public class ServiceA {
@Transactional
public void a() {
...
serviceB.b()
...
}
}
別のサービスのメソッドを呼び出す
public class ServiceB {
@Transactional
public void b() {
...
graphRepository.save(..)
...
}
}
GraphRepository のメソッドを呼び出します。
GraphRepository メソッドの実行中に問題がなければ、問題なく動作しますが、GraphRepository で例外が発生した場合、ロールバックは機能せず、リモート データベースへのすべての呼び出しがブロックされます。
b() の Transactional アノテーションを削除すると、GraphRepository で例外が発生した場合でも、正常に動作します。
この振る舞いを説明することはできません。
手伝って頂けますか?