public class TransactionAwareConnectionFactoryProxy extends DelegatingConnectionFactory
ConnectionFactory のプロキシ。Spring 管理のトランザクションの認識を追加します。Spring のデータアクセスサポートを認識しないままにする必要のあるデータアクセスコードは、このプロキシと連携して、Spring が管理するトランザクションにシームレスに参加できます。R2dbcTransactionManager などのトランザクションマネージャーは、このプロキシではなく、基盤となる ConnectionFactory と連携する必要があることに注意してください。
TransactionAwareConnectionFactoryProxy が ConnectionFactory プロキシ / アダプターのチェーンの最も外側の ConnectionFactory であることを確認してください。TransactionAwareConnectionFactoryProxy は、ターゲット接続プールに直接委譲することも、中間プロキシ / アダプターに委譲することもできます。
たとえば R2dbcTransactionManager によって管理される、スレッドにバインドされたトランザクションに自動的に参加するための ConnectionFactoryUtils へのデリゲート。返された Connection での create() 呼び出しと close 呼び出しは、トランザクション内で適切に動作します。つまり、常にトランザクション接続で動作します。トランザクション内にない場合、通常の ConnectionFactory 動作が適用されます。
このプロキシにより、データアクセスコードをプレーンな R2DBCAPI と連携させることができます。ただし、可能であれば、Spring の ConnectionFactoryUtils または DatabaseClient を使用して、ターゲット ConnectionFactory のプロキシがなくてもトランザクションへの参加を取得し、そもそもそのようなプロキシを定義する必要をなくします。
注意 : この ConnectionFactory プロキシは、クローズコールを適切に処理するために、ラップされた Connection を返す必要があります。Wrapped.unwrap() を使用して、ネイティブ R2DBC 接続を取得します。
ConnectionFactory.create(), Connection.close(), ConnectionFactoryUtils.doGetConnection(io.r2dbc.spi.ConnectionFactory), ConnectionFactoryUtils.doReleaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)| コンストラクターと説明 |
|---|
TransactionAwareConnectionFactoryProxy(io.r2dbc.spi.ConnectionFactory targetConnectionFactory) 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
reactor.core.publisher.Mono<io.r2dbc.spi.Connection> | create()Spring 管理のトランザクションに自動的に参加するための ConnectionFactoryUtils へのデリゲート。 |
protected reactor.core.publisher.Mono<io.r2dbc.spi.Connection> | getTransactionAwareConnectionProxy(io.r2dbc.spi.ConnectionFactory targetConnectionFactory) |
getMetadata, getTargetConnectionFactory, unwrapcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic TransactionAwareConnectionFactoryProxy(io.r2dbc.spi.ConnectionFactory targetConnectionFactory)
TransactionAwareConnectionFactoryProxy を作成します。targetConnectionFactory - ターゲット ConnectionFactorypublic reactor.core.publisher.Mono<io.r2dbc.spi.Connection> create()
ConnectionFactoryUtils へのデリゲート。io.r2dbc.spi.ConnectionFactory 内の create DelegatingConnectionFactory の create Connection (ある場合)、新しいもの。ConnectionFactoryUtils.doGetConnection(io.r2dbc.spi.ConnectionFactory)protected reactor.core.publisher.Mono<io.r2dbc.spi.Connection> getTransactionAwareConnectionProxy(io.r2dbc.spi.ConnectionFactory targetConnectionFactory)
targetConnectionFactory - Connection が由来する ConnectionFactory Connection。Connection.close(), ConnectionFactoryUtils.doReleaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)