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 接続を取得します。
| コンストラクターと説明 |
|---|
TransactionAwareConnectionFactoryProxy(ConnectionFactory targetConnectionFactory) 新しい TransactionAwareConnectionFactoryProxy を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
reactor.core.publisher.Mono<Connection> | create()Spring 管理のトランザクションに自動的に参加するための ConnectionFactoryUtils へのデリゲート。 |
protected reactor.core.publisher.Mono<Connection> | getTransactionAwareConnectionProxy(ConnectionFactory targetConnectionFactory) |
getMetadata, getTargetConnectionFactory, unwrapcloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic TransactionAwareConnectionFactoryProxy(ConnectionFactory targetConnectionFactory)
TransactionAwareConnectionFactoryProxy を作成します。targetConnectionFactory - ターゲット ConnectionFactorypublic reactor.core.publisher.Mono<Connection> create()
ConnectionFactoryUtils へのデリゲート。ConnectionFactory の create DelegatingConnectionFactory の create Connection(ある場合)、新しいもの。ConnectionFactoryUtils.doGetConnection(io.r2dbc.spi.ConnectionFactory)protected reactor.core.publisher.Mono<Connection> getTransactionAwareConnectionProxy(ConnectionFactory targetConnectionFactory)
targetConnectionFactory - Connection が由来する ConnectionFactoryConnectionConnection.close(), ConnectionFactoryUtils.doReleaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)