クラス R2dbcTransactionManager

実装されているすべてのインターフェース:
SerializableSEInitializingBeanReactiveTransactionManagerTransactionManager

public class R2dbcTransactionManager extends AbstractReactiveTransactionManager implements InitializingBean
単一の R2DBC ConnectionFactoryReactiveTransactionManager 実装。このクラスは、セットアップで Connection ファクトリメカニズムとして ConnectionFactory を使用している限り、任意の R2DBC ドライバーを使用する任意の環境で動作できます。R2DBC Connection を指定された ConnectionFactory から現在のサブスクライバーコンテキストにバインドし、ConnectionFactory ごとに 1 つのコンテキストバインド Connection を許可する可能性があります。

注: このトランザクションマネージャーが動作する ConnectionFactory は、独立した Connection を返す必要がありますConnection はプールから取得できますが(一般的なケース)、ConnectionFactory はスコープ付き Connection などを返さないようにする必要があります。このトランザクションマネージャーは、指定された伝播動作に従って、Connection をコンテキストバインドされたトランザクション自体に関連付けます。進行中のトランザクション中でも、別個の独立した Connection を取得できることを前提としています。

標準の R2DBC スタイルの ConnectionFactory.create() 呼び出しではなく、ConnectionFactoryUtils.getConnection(ConnectionFactory) を介して R2DBC 接続を取得するには、アプリケーションコードが必要です。DatabaseClient などの Spring クラスは、この戦略を暗黙的に使用します。このトランザクションマネージャーと組み合わせて使用しない場合、ConnectionFactoryUtils ルックアップ戦略はネイティブ ConnectionFactory ルックアップとまったく同じように動作します。ポータブルな方法で使用できます。

または、アプリケーションコードが標準の R2DBC ルックアップパターン ConnectionFactory.create() で動作するようにすることもできます。たとえば、Spring をまったく認識しないコードの場合です。その場合、ターゲット ConnectionFactoryTransactionAwareConnectionFactoryProxy を定義し、そのプロキシ ConnectionFactory を DAO に渡します。DAO は、アクセス時に Spring 管理のトランザクションに自動的に参加します。

このトランザクションマネージャーは、基盤となる R2DBC Connection で動作しているリソースを想定して、登録されたトランザクション同期でフラッシュコールバックをトリガーします(同期が一般的にアクティブな場合)。

Spring の TransactionDefinition 属性は、拡張可能な R2DBC TransactionDefinition を使用して R2DBC ドライバーに引き継がれます。サブクラスは createTransactionDefinition(TransactionDefinition) をオーバーライドして、ベンダー固有の属性のトランザクション定義をカスタマイズできます。

導入:
5.3
作成者:
Mark Paluch, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • R2dbcTransactionManager

      public R2dbcTransactionManager()
      新しい R2dbcTransactionManager インスタンスを作成します。ConnectionFactory を使用するには、ConnectionFactory を設定する必要があります。
      関連事項:
    • R2dbcTransactionManager

      public R2dbcTransactionManager(ConnectionFactory connectionFactory)
      新しい R2dbcTransactionManager インスタンスを作成します。
      パラメーター:
      connectionFactory - トランザクションを管理する R2DBC ConnectionFactory
  • メソッドの詳細