インターフェース TransactionSynchronization
- すべての既知の実装クラス:
ReactiveResourceSynchronization
AbstractReactiveTransactionManager
でサポートされています。TransactionSynchronization 実装は、Ordered
インターフェースを実装して実行順序に影響を与えることができます。Ordered
インターフェースを実装しない同期は、同期チェーンの最後に追加されます。
Spring 自体によって実行されるシステム同期は、特定の順序値を使用して、実行順序とのきめ細かいやり取りを可能にします(必要な場合)。
- 導入:
- 5.2
- 作成者:
- Mark Paluch, Juergen Hoeller
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明static final int
適切なコミットの場合の完了ステータス。static final int
適切なロールバックの場合の完了ステータス。static final int
ヒューリスティックな混合完了またはシステムエラーの場合の完了ステータス。方法の概要
修飾子と型メソッド説明default reactor.core.publisher.Mono<VoidSE>
トランザクションのコミット後に呼び出されます。default reactor.core.publisher.Mono<VoidSE>
afterCompletion
(int status) トランザクションのコミット / ロールバック後に呼び出されます。default reactor.core.publisher.Mono<VoidSE>
beforeCommit
(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。default reactor.core.publisher.Mono<VoidSE>
トランザクションのコミット / ロールバックの前に呼び出されます。default reactor.core.publisher.Mono<VoidSE>
resume()
この同期を再開します。default reactor.core.publisher.Mono<VoidSE>
suspend()
この同期を一時停止します。
フィールドの詳細
メソッドの詳細
suspend
この同期を一時停止します。いずれかを管理している場合、TransactionSynchronizationManager からリソースのバインドを解除することになっています。resume
この同期を再開します。リソースを管理している場合、リソースを TransactionSynchronizationManager に再バインドするとします。beforeCommit
トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。このコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
- パラメーター:
readOnly
- トランザクションが読み取り専用トランザクションとして定義されているかどうか- 例外:
RuntimeExceptionSE
- エラーの場合 ; 呼び出し元に伝播されます (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項:
beforeCompletion
トランザクションのコミット / ロールバックの前に呼び出されます。トランザクションの完了前にリソースのクリーンアップを実行できます。beforeCommit
が例外をスローした場合でも、このメソッドはbeforeCommit
の後に呼び出されます。このコールバックにより、トランザクションの完了前にリソースを閉じることができます。- 例外:
RuntimeExceptionSE
- エラーの場合 ; ログに記録されますが、伝播されません (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項:
afterCommit
トランザクションのコミット後に呼び出されます。メイントランザクションが正常にコミットされた直後に、さらに操作を実行できます。たとえば、確認メッセージやメールなど、メイントランザクションのコミットが成功した後に続くはずの追加操作をコミットできます。
注 : トランザクションはすでにコミットされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- 例外:
RuntimeExceptionSE
- エラーの場合 ; 呼び出し元に伝播されます (注意: ここで TransactionException サブクラスをスローしないでください! )
afterCompletion
トランザクションのコミット / ロールバック後に呼び出されます。トランザクションの完了後にリソースのクリーンアップを実行できます。注 : トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- パラメーター:
status
-STATUS_*
定数に従った完了ステータス- 例外:
RuntimeExceptionSE
- エラーの場合 ; ログに記録されますが、伝播されません (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項: