インターフェース TransactionSynchronization
- すべてのスーパーインターフェース:
FlushableSE
,Ordered
- すべての既知の実装クラス:
ResourceHolderSynchronization
、SpringFlushSynchronization
、SpringSessionSynchronization
、TransactionSynchronizationAdapter
TransactionSynchronization 実装は、Ordered インターフェースを実装して、実行順序に影響を与えることができます。Ordered インターフェースを実装しない同期は、同期チェーンの最後に追加されます。
Spring 自体によって実行されるシステム同期は、特定の順序値を使用して、実行順序とのきめ細かいやり取りを可能にします(必要な場合)。
5.3 の時点で、同期の実行順序を宣言的に制御できるように Ordered
インターフェースを実装します。デフォルトの order
は Ordered.LOWEST_PRECEDENCE
で、実行が遅れていることを示します。以前の実行では低い値を返します。
- 導入:
- 02.06.2003
- 作成者:
- Juergen Hoeller
- 関連事項:
フィールドサマリー
修飾子と型フィールド説明static final int
適切なコミットの場合の完了ステータス。static final int
適切なロールバックの場合の完了ステータス。static final int
ヒューリスティックな混合完了またはシステムエラーの場合の完了ステータス。インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
方法の概要
修飾子と型メソッド説明default void
トランザクションのコミット後に呼び出されます。default void
afterCompletion
(int status) トランザクションのコミット / ロールバック後に呼び出されます。default void
beforeCommit
(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。default void
トランザクションのコミット / ロールバックの前に呼び出されます。default void
flush()
該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。default int
getOrder()
このトランザクション同期の実行順序を返します。default void
resume()
この同期を再開します。default void
既存のトランザクションに対してネストされたトランザクションが開始されたとき、またはTransactionStatus
を介したプログラムによるセーブポイントで、新しいセーブポイントの作成時に呼び出されます。default void
savepointRollback
(ObjectSE savepoint) 以前に作成されたセーブポイントへのロールバックの場合に呼び出されます。default void
suspend()
この同期を一時停止します。
フィールドの詳細
メソッドの詳細
getOrder
default int getOrder()このトランザクション同期の実行順序を返します。デフォルトは
Ordered.LOWEST_PRECEDENCE
です。suspend
default void suspend()この同期を一時停止します。いずれかを管理している場合、TransactionSynchronizationManager からリソースのバインドを解除することになっています。resume
default void resume()この同期を再開します。リソースを管理している場合、リソースを TransactionSynchronizationManager に再バインドするとします。flush
default void flush()該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。- 次で指定:
- インターフェース
FlushableSE
のflush
- 関連事項:
savepoint
既存のトランザクションに対してネストされたトランザクションが開始されたとき、またはTransactionStatus
を介したプログラムによるセーブポイントで、新しいセーブポイントの作成時に呼び出されます。この同期コールバックは、指定されたセーブポイントオブジェクトがすでにアクティブになっているリソースセーブポイントの作成直後に呼び出されます。
- パラメーター:
savepoint
- 関連するセーブポイントオブジェクト (主にセーブポイントを識別するためのキーとして使用されますが、リソースセーブポイント型にキャストすることもできます。)- 導入:
- 6.2
- 関連事項:
savepointRollback
以前に作成されたセーブポイントへのロールバックの場合に呼び出されます。この同期コールバックは、指定されたセーブポイントオブジェクトがまだアクティブな状態で、リソースセーブポイントのロールバックの直前に呼び出されます。
- パラメーター:
savepoint
- 関連するセーブポイントオブジェクト (主にセーブポイントを識別するためのキーとして使用されますが、リソースセーブポイント型にキャストすることもできます。)- 導入:
- 6.2
- 関連事項:
beforeCommit
default void beforeCommit(boolean readOnly) トランザクションのコミット前 ( "beforeCompletion" の前) に呼び出されます。たとえば、トランザクション O/R マッピングセッションをデータベースにフラッシュできます。このコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
- パラメーター:
readOnly
- トランザクションが読み取り専用トランザクションとして定義されているかどうか- 例外:
RuntimeExceptionSE
- エラーの場合 ; 呼び出し元に伝播されます (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項:
beforeCompletion
default void beforeCompletion()トランザクションのコミット / ロールバックの前に呼び出されます。トランザクションの完了前にリソースのクリーンアップを実行できます。beforeCommit
が例外をスローした場合でも、このメソッドはbeforeCommit
の後に呼び出されます。このコールバックにより、トランザクションの完了前にリソースを閉じることができます。- 例外:
RuntimeExceptionSE
- エラーの場合 ; ログに記録されますが、伝播されません (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項:
afterCommit
default void afterCommit()トランザクションのコミット後に呼び出されます。メイントランザクションが正常にコミットされた直後に、さらに操作を実行できます。たとえば、確認メッセージやメールなど、メイントランザクションのコミットが成功した後に続くはずの追加操作をコミットできます。
注 : トランザクションはすでにコミットされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- 例外:
RuntimeExceptionSE
- エラーの場合 ; 呼び出し元に伝播されます (注意: ここで TransactionException サブクラスをスローしないでください! )
afterCompletion
default void afterCompletion(int status) トランザクションのコミット / ロールバック後に呼び出されます。トランザクションの完了後にリソースのクリーンアップを実行できます。注 : トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- パラメーター:
status
-STATUS_*
定数に従った完了ステータス- 例外:
RuntimeExceptionSE
- エラーの場合 ; ログに記録されますが、伝播されません (注意: ここで TransactionException サブクラスをスローしないでください! )- 関連事項: