クラス ResourceHolderSynchronization<H extends ResourceHolder,K>
- 型パラメーター:
H- リソースホルダーの型K- リソースキー型
- 実装されているすべてのインターフェース:
FlushableSE、Ordered、TransactionSynchronization
- 導入:
- 2.5.5
- 作成者:
- Juergen Hoeller
フィールドのサマリー
インターフェース org.springframework.core.Ordered から継承されたフィールド
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCEインターフェース org.springframework.transaction.support.TransactionSynchronization から継承されたフィールド
STATUS_COMMITTED, STATUS_ROLLED_BACK, STATUS_UNKNOWNコンストラクターの概要
コンストラクターコンストラクター説明ResourceHolderSynchronization(H resourceHolder, K resourceKey) 指定されたホルダーの新しい ResourceHolderSynchronization を作成します。メソッドのサマリー
修飾子と型メソッド説明voidトランザクションのコミット後に呼び出されます。voidafterCompletion(int status) トランザクションのコミット / ロールバック後に呼び出されます。voidbeforeCommit(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。voidトランザクションのコミット / ロールバックの前に呼び出されます。protected voidcleanupResource(H resourceHolder, K resourceKey, boolean committed) 指定されたリソース(スレッドにバインドされたまま)に対してクリーンアップを実行します。voidflush()該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。protected voidflushResource(H resourceHolder) 指定されたリソースホルダーのコールバックをフラッシュします。protected voidprocessResourceAfterCommit(H resourceHolder) 指定されたリソースホルダーのコミット後のコールバック。protected voidreleaseResource(H resourceHolder, K resourceKey) 指定されたリソースを解放します(スレッドからバインド解除された後)。voidresume()この同期を再開します。protected booleanshouldReleaseAfterCompletion(H resourceHolder) トランザクションの完了後にこの所有者のリソースを解放する必要があるかどうかを返します(true)。protected booleanこの所有者のリソースをトランザクション完了前(true)に解放するか、トランザクション完了後(false)に解放するかを返します。protected booleanこのホルダーが完了時にバインド解除される(または、トランザクション後にスレッドにバインドされたままにする必要がある)かどうかを返します。voidsuspend()この同期を一時停止します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース org.springframework.transaction.support.TransactionSynchronization から継承されたメソッド
getOrder, savepoint, savepointRollback
コンストラクターの詳細
ResourceHolderSynchronization
指定されたホルダーの新しい ResourceHolderSynchronization を作成します。- パラメーター:
resourceHolder- 管理する ResourceHolderresourceKey- ResourceHolder をバインドするキー- 関連事項:
メソッドの詳細
suspend
public void suspend()インターフェースからコピーされた説明:TransactionSynchronizationこの同期を一時停止します。いずれかを管理している場合、TransactionSynchronizationManager からリソースのバインドを解除することになっています。resume
public void resume()インターフェースからコピーされた説明:TransactionSynchronizationこの同期を再開します。リソースを管理している場合、リソースを TransactionSynchronizationManager に再バインドするとします。flush
public void flush()インターフェースからコピーされた説明:TransactionSynchronization該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。- 次で指定:
- インターフェース
FlushableSEのflush - 次で指定:
- インターフェース
TransactionSynchronizationのflush - 関連事項:
beforeCommit
public void beforeCommit(boolean readOnly) インターフェースからコピーされた説明:TransactionSynchronizationトランザクションのコミット前 ( "beforeCompletion" の前) に呼び出されます。たとえば、トランザクション O/R マッピングセッションをデータベースにフラッシュできます。このコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
- 次で指定:
- インターフェース
TransactionSynchronizationのbeforeCommit - パラメーター:
readOnly- トランザクションが読み取り専用トランザクションとして定義されているかどうか- 関連事項:
beforeCompletion
public void beforeCompletion()インターフェースからコピーされた説明:TransactionSynchronizationトランザクションのコミット / ロールバックの前に呼び出されます。トランザクションの完了前にリソースのクリーンアップを実行できます。beforeCommitが例外をスローした場合でも、このメソッドはbeforeCommitの後に呼び出されます。このコールバックにより、トランザクションの完了前にリソースを閉じることができます。afterCommit
public void afterCommit()インターフェースからコピーされた説明:TransactionSynchronizationトランザクションのコミット後に呼び出されます。メイントランザクションが正常にコミットされた直後に、さらに操作を実行できます。たとえば、確認メッセージやメールなど、メイントランザクションのコミットが成功した後に続くはずの追加操作をコミットできます。
注 : トランザクションはすでにコミットされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEWを使用します。- 次で指定:
- インターフェース
TransactionSynchronizationのafterCommit
afterCompletion
public void afterCompletion(int status) インターフェースからコピーされた説明:TransactionSynchronizationトランザクションのコミット / ロールバック後に呼び出されます。トランザクションの完了後にリソースのクリーンアップを実行できます。注 : トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEWを使用します。- 次で指定:
- インターフェース
TransactionSynchronizationのafterCompletion - パラメーター:
status-STATUS_*定数に従った完了ステータス- 関連事項:
shouldUnbindAtCompletion
protected boolean shouldUnbindAtCompletion()このホルダーが完了時にバインド解除される(または、トランザクション後にスレッドにバインドされたままにする必要がある)かどうかを返します。デフォルトの実装は
trueを返します。shouldReleaseBeforeCompletion
protected boolean shouldReleaseBeforeCompletion()この所有者のリソースをトランザクション完了前(true)に解放するか、トランザクション完了後(false)に解放するかを返します。リソースが解放されるのは、それらがスレッド(
shouldUnbindAtCompletion())からバインド解除されている場合のみであることに注意してください。デフォルトの実装は
trueを返します。shouldReleaseAfterCompletion
トランザクションの完了後にこの所有者のリソースを解放する必要があるかどうかを返します(true)。デフォルトの実装は
!shouldReleaseBeforeCompletion()を返し、完了前に試行が行われなかった場合は完了後に解放します。flushResource
指定されたリソースホルダーのコールバックをフラッシュします。- パラメーター:
resourceHolder- フラッシュするリソースホルダー
processResourceAfterCommit
指定されたリソースホルダーのコミット後のコールバック。リソースがまだ解放されていない場合にのみ呼び出されます(shouldReleaseBeforeCompletion())。- パラメーター:
resourceHolder- 処理するリソースホルダー
releaseResource
指定されたリソースを解放します(スレッドからバインド解除された後)。- パラメーター:
resourceHolder- 処理するリソースホルダーresourceKey- ResourceHolder がバインドされたキー
cleanupResource
指定されたリソース(スレッドにバインドされたまま)に対してクリーンアップを実行します。- パラメーター:
resourceHolder- 処理するリソースホルダーresourceKey- ResourceHolder がバインドされたキーcommitted- トランザクションがコミット(true)したか、ロールバックしたか (false)