スプリングトランザクション伝搬メカニズム

スプリングトランザクション伝播機構とは、複数トランザクションメソッド相互に呼び出しを行う場合の、トランザクションの伝播ルール・動作のことである。簡単に言うと、あるメソッドが別のメソッドを呼び出す際、呼び出し先メソッドがすでにトランザクションコンテキストを持っている場合、トランザクション伝播機構によって、呼び出し先メソッドが既存トランザクションに参加するか新規トランザクションを作成するかが決定される。

Springフレームワークは、次のようなトランザクション伝播メカニズムを提供します。

  1. 既定の伝播機構。現在のトランザクションがあればこれに結合し、なければ新しいトランザクションを作成します。
  2. トランザクションを新規作成し、現在のトランザクションを(存在する場合)一時停止します。呼び出されたメソッドは自身のトランザクション内で動作し、呼び出し元のメソッドのトランザクションとは完全に独立します。
  3. サポート: 現在トランザクションが存在する場合はそのトランザクションに追加され、現在トランザクションが存在しない場合は非トランザクション方式で実行される。
  4. トランザクション外で実行され、現在のトランザクションが中断されます(存在する場合)。
  5. トランザクションが存在する場合、そのトランザクションに参加します。トランザクションが存在しない場合、例外をスローします。
  6. NEVER:トランザクションがない場合は非トランザクション方式で実行し、トランザクションがあれば例外をスローする。
  7. ネステッド トランザクション: 現在のトランザクションが存在する場合は、ネステッドトランザクション内で実行します。現在のトランザクションが存在しない場合は、新しいトランザクションを作成します。ネステッドトランザクションは外側のトランザクションの一部であり、外側のトランザクションに依存せずにコミットまたはロールバックできます。

適切なトランザクション伝達機構を利用することで、トランザクションの振る舞いをより適切に制御し、データの整合性と完全性を保証できる。

bannerAds