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, unwrap
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public TransactionAwareConnectionFactoryProxy(ConnectionFactory targetConnectionFactory)
TransactionAwareConnectionFactoryProxy
を作成します。targetConnectionFactory
- ターゲット ConnectionFactory
public 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
が由来する ConnectionFactory
Connection
Connection.close()
, ConnectionFactoryUtils.doReleaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)