public abstract class TransactionSynchronizationAdapter extends ObjectSE implements TransactionSynchronization, Ordered
TransactionSynchronization アダプター。 また、Ordered インターフェースを実装して、同期の実行順序を宣言的に制御できるようにします。デフォルトの order は Ordered.LOWEST_PRECEDENCE で、実行が遅いことを示します。以前の実行には低い値を返します。
STATUS_COMMITTED, STATUS_ROLLED_BACK, STATUS_UNKNOWNHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
TransactionSynchronizationAdapter() |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterCommit() トランザクションのコミット後に呼び出されます。 |
void | afterCompletion(int status) トランザクションのコミット / ロールバック後に呼び出されます。 |
void | beforeCommit(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。 |
void | beforeCompletion() トランザクションのコミット / ロールバックの前に呼び出されます。 |
void | flush() 該当する場合は、基になるセッションをデータストアにフラッシュします(例: Hibernate/JPA セッション)。 |
int | getOrder() このオブジェクトの順序値を取得します。 |
void | resume() この同期を再開します。 |
void | suspend() この同期を一時停止します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic int getOrder()
Ordered 値が高いほど、優先度は低くなります。結果として、最も低い値を持つオブジェクトが最高の優先度を持ちます(サーブレット load-on-startup の値に多少似ています)。
同じ順序の値は、影響を受けるオブジェクトの任意のソート位置になります。
Ordered の getOrder Ordered.HIGHEST_PRECEDENCE, Ordered.LOWEST_PRECEDENCEpublic void suspend()
TransactionSynchronizationpublic void resume()
TransactionSynchronizationpublic void flush()
TransactionSynchronizationFlushableSE の flushSE TransactionSynchronization の flush TransactionStatus.flush()public void beforeCommit(boolean readOnly)
TransactionSynchronizationこのコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
TransactionSynchronization の beforeCommit readOnly - トランザクションが読み取り専用トランザクションとして定義されているかどうか TransactionSynchronization.beforeCompletion()public void beforeCompletion()
TransactionSynchronizationbeforeCommit が例外をスローした場合でも、このメソッドは beforeCommit の後に呼び出されます。このコールバックにより、トランザクションの完了前にリソースを閉じることができます。
public void afterCommit()
TransactionSynchronizationできます。確認メッセージやメールなど、メイントランザクションが正常にコミットされた後に実行されるはずの操作をさらにコミットします。
注 : トランザクションはすでにコミットされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には PROPAGATION_REQUIRES_NEW を使用します。
TransactionSynchronization の afterCommit public void afterCompletion(int status)
TransactionSynchronization 注 : トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には PROPAGATION_REQUIRES_NEW を使用します。
TransactionSynchronization の afterCompletion status - STATUS_* 定数に従った完了ステータス TransactionSynchronization.STATUS_COMMITTED, TransactionSynchronization.STATUS_ROLLED_BACK, TransactionSynchronization.STATUS_UNKNOWN, TransactionSynchronization.beforeCompletion()