public interface TransactionalOperator
中心的な方法は transactional(reactor.core.publisher.Flux<T>)
であり、関数シーケンスのトランザクションラップをサポートし、それをコーディングします。このオペレーターは、トランザクションのライフサイクルと起こり得る例外を処理するため、ReactiveTransactionCallback 実装も呼び出し元のコードも明示的にトランザクションを処理する必要はありません。
典型的な使用箇所: データベース接続などのリソースを使用するが、トランザクション自体は認識しない低レベルのデータアクセスオブジェクトを書き込むことができます。代わりに、このクラスを利用する高レベルのアプリケーションサービスによって処理されるトランザクションに暗黙的に参加し、内部クラスのコールバックオブジェクトを介して低レベルのサービスを呼び出すことができます。
注意 : トランザクションパブリッシャーは、サブスクリプションのキャンセルを回避する必要があります。詳細については、Spring Framework リファレンスのシグナルをキャンセルセクションを参照してください。
execute(org.springframework.transaction.reactive.TransactionCallback<T>)
, ReactiveTransactionManager
修飾子と型 | メソッドと説明 |
---|---|
static TransactionalOperator | create(ReactiveTransactionManager transactionManager) デフォルトのトランザクションを使用して、 ReactiveTransactionManager を使用して新しい TransactionalOperator を作成します。 |
static TransactionalOperator | create(ReactiveTransactionManager transactionManager, TransactionDefinition transactionDefinition) |
<T> reactor.core.publisher.Flux<T> | execute(TransactionCallback<T> action) トランザクション内で、指定されたコールバックオブジェクトによって指定されたアクションを実行します。 |
default <T> reactor.core.publisher.Flux<T> | transactional(reactor.core.publisher.Flux<T> flux) トランザクション内で、指定された Flux によって指定された機能シーケンスをラップします。 |
<T> reactor.core.publisher.Mono<T> | transactional(reactor.core.publisher.Mono<T> mono) 指定された Mono によって指定された機能シーケンスをトランザクション内でラップします。 |
default <T> reactor.core.publisher.Flux<T> transactional(reactor.core.publisher.Flux<T> flux)
flux
- トランザクション内で実行されるべき Fluxnull
TransactionException
- 初期化、ロールバック、システムエラーの場合 RuntimeExceptionSE
- TransactionCallback によってスローされた場合 <T> reactor.core.publisher.Mono<T> transactional(reactor.core.publisher.Mono<T> mono)
mono
- トランザクション内で実行する必要がある MonoTransactionException
- 初期化、ロールバック、システムエラーの場合 RuntimeExceptionSE
- TransactionCallback によってスローされた場合 <T> reactor.core.publisher.Flux<T> execute(TransactionCallback<T> action) throws TransactionException
トランザクション内で作成された結果オブジェクト、つまりドメインオブジェクトまたはドメインオブジェクトのコレクションを返すことができます。コールバックによってスローされた RuntimeException は、ロールバックを強制する致命的な例外として扱われます。このような例外は、テンプレートの呼び出し元に伝播されます。
action
- トランザクションアクションを指定するコールバックオブジェクト TransactionException
- 初期化、ロールバック、システムエラーの場合 RuntimeExceptionSE
- TransactionCallback によってスローされた場合 static TransactionalOperator create(ReactiveTransactionManager transactionManager)
ReactiveTransactionManager
を使用して新しい TransactionalOperator
を作成します。transactionManager
- 使用するトランザクション管理戦略 static TransactionalOperator create(ReactiveTransactionManager transactionManager, TransactionDefinition transactionDefinition)
transactionManager
- 使用するトランザクション管理戦略 transactionDefinition
- 適用するトランザクション定義