public class SpringSessionSynchronization extends ObjectSE implements TransactionSynchronization, Ordered
STATUS_COMMITTED, STATUS_ROLLED_BACK, STATUS_UNKNOWNHIGHEST_PRECEDENCE, LOWEST_PRECEDENCE| コンストラクターと説明 |
|---|
SpringSessionSynchronization(SessionHolder sessionHolder, SessionFactory sessionFactory) |
SpringSessionSynchronization(SessionHolder sessionHolder, SessionFactory sessionFactory, boolean newSession) |
| 修飾子と型 | メソッドと説明 |
|---|---|
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 SpringSessionSynchronization(SessionHolder sessionHolder, SessionFactory sessionFactory)
public SpringSessionSynchronization(SessionHolder sessionHolder, SessionFactory sessionFactory, boolean newSession)
public int getOrder()
TransactionSynchronization デフォルトは Ordered.LOWEST_PRECEDENCE です。
Ordered の getOrder TransactionSynchronization の 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)
throws DataAccessExceptionTransactionSynchronizationこのコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
TransactionSynchronization の beforeCommit readOnly - トランザクションが読み取り専用トランザクションとして定義されているかどうか DataAccessExceptionTransactionSynchronization.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()