クラス 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
トランザクションのコミット後に呼び出されます。void
afterCompletion
(int status) トランザクションのコミット / ロールバック後に呼び出されます。void
beforeCommit
(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。void
トランザクションのコミット / ロールバックの前に呼び出されます。protected void
cleanupResource
(H resourceHolder, K resourceKey, boolean committed) 指定されたリソース(スレッドにバインドされたまま)に対してクリーンアップを実行します。void
flush()
該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。protected void
flushResource
(H resourceHolder) 指定されたリソースホルダーのコールバックをフラッシュします。protected void
processResourceAfterCommit
(H resourceHolder) 指定されたリソースホルダーのコミット後のコールバック。protected void
releaseResource
(H resourceHolder, K resourceKey) 指定されたリソースを解放します(スレッドからバインド解除された後)。void
resume()
この同期を再開します。protected boolean
shouldReleaseAfterCompletion
(H resourceHolder) トランザクションの完了後にこの所有者のリソースを解放する必要があるかどうかを返します(true
)。protected boolean
この所有者のリソースをトランザクション完了前(true
)に解放するか、トランザクション完了後(false
)に解放するかを返します。protected boolean
このホルダーが完了時にバインド解除される(または、トランザクション後にスレッドにバインドされたままにする必要がある)かどうかを返します。void
suspend()
この同期を一時停止します。クラス 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
)