public abstract class ConnectionFactoryUtils extends ObjectSE
ConnectionFactory
から R2DBC 接続を取得するための静的メソッドを提供するヘルパークラス。Spring の DatabaseClient
、Spring の R2DBC 操作オブジェクトによって内部的に使用されます。アプリケーションコードで直接使用することもできます。
R2dbcTransactionManager
, TransactionSynchronizationManager
修飾子と型 | フィールドと説明 |
---|---|
static int | CONNECTION_SYNCHRONIZATION_ORDER R2DBC 接続をクリーンアップする ReactiveTransactionSynchronization オブジェクトの順序値。 |
コンストラクターと説明 |
---|
ConnectionFactoryUtils() |
修飾子と型 | メソッドと説明 |
---|---|
static DataAccessException | convertR2dbcException(StringSE task, StringSE sql, R2dbcException ex) 指定された R2dbcException を汎用 DataAccessException に変換します。 |
static reactor.core.publisher.Mono<ConnectionFactory> | currentConnectionFactory(ConnectionFactory connectionFactory) 現在の TransactionSynchronizationManager から ConnectionFactory を取得します。 |
static reactor.core.publisher.Mono<Connection> | doGetConnection(ConnectionFactory connectionFactory) 指定された ConnectionFactory から実際に R2DBC 接続を取得します。 |
static reactor.core.publisher.Mono<VoidSE> | doReleaseConnection(Connection connection, ConnectionFactory connectionFactory) 指定された ConnectionFactory から取得された指定された Connection を実際に閉じます。 |
static reactor.core.publisher.Mono<Connection> | getConnection(ConnectionFactory connectionFactory) 指定された ConnectionFactory から Connection を取得します。 |
static Connection | getTargetConnection(Connection con) 指定された Connection の最も内側のターゲット Connection を返します。 |
static reactor.core.publisher.Mono<VoidSE> | releaseConnection(Connection con, ConnectionFactory connectionFactory) 外部で管理されていない(つまり、サブスクリプションにバインドされていない)場合は、指定された ConnectionFactory から取得された指定された Connection を閉じます。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public static final int CONNECTION_SYNCHRONIZATION_ORDER
public static reactor.core.publisher.Mono<Connection> getConnection(ConnectionFactory connectionFactory)
ConnectionFactory
から Connection
を取得します。例外を未チェックのジェネリクスデータアクセス例外の Spring 階層に変換し、コードの呼び出しを簡素化し、スローされる例外をより意味のあるものにします。 現在の TransactionSynchronizationManager
にバインドされている対応する接続を認識しています。トランザクション同期がアクティブな場合、接続を TransactionSynchronizationManager
にバインドします。
connectionFactory
- から Connections
を取得する ConnectionFactory
ConnectionFactory
からの R2DBC 接続 DataAccessResourceFailureException
- Connection
の取得に失敗した場合 releaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)
public static reactor.core.publisher.Mono<Connection> doGetConnection(ConnectionFactory connectionFactory)
ConnectionFactory
から実際に R2DBC 接続を取得します。getConnection(io.r2dbc.spi.ConnectionFactory)
と同じですが、元の例外を保持します。 現在の TransactionSynchronizationManager
にバインドされている対応する接続を認識しています。トランザクション同期がアクティブな場合、接続を TransactionSynchronizationManager
にバインドします
connectionFactory
- から接続を取得する ConnectionFactory
ConnectionFactory
からの R2DBC Connection
。public static reactor.core.publisher.Mono<VoidSE> releaseConnection(Connection con, ConnectionFactory connectionFactory)
ConnectionFactory
から取得された指定された Connection
を閉じます。con
- 必要に応じて Connection
を閉じる connectionFactory
- 接続が取得された ConnectionFactory
getConnection(io.r2dbc.spi.ConnectionFactory)
public static reactor.core.publisher.Mono<VoidSE> doReleaseConnection(Connection connection, ConnectionFactory connectionFactory)
ConnectionFactory
から取得された指定された Connection
を実際に閉じます。releaseConnection(io.r2dbc.spi.Connection, io.r2dbc.spi.ConnectionFactory)
と同じですが、元の例外を保持します。connection
- 必要に応じて Connection
を閉じる connectionFactory
- 接続が取得された ConnectionFactory
doGetConnection(io.r2dbc.spi.ConnectionFactory)
public static reactor.core.publisher.Mono<ConnectionFactory> currentConnectionFactory(ConnectionFactory connectionFactory)
TransactionSynchronizationManager
から ConnectionFactory
を取得します。connectionFactory
- 接続が取得された ConnectionFactory
TransactionSynchronizationManager
public static DataAccessException convertR2dbcException(StringSE task, @Nullable StringSE sql, R2dbcException ex)
R2dbcException
を汎用 DataAccessException
に変換します。 返された DataAccessException には、根本原因として元の R2dbcException
が含まれているはずです。ただし、DataAccessExceptions は他のリソース API によっても発生している可能性があるため、クライアントコードは通常これに依存しない場合があります。とはいえ、R2DBC ベースのアクセスが発生したと予想される場合、getRootCause() instanceof R2dbcException
チェック(およびその後のキャスト)は信頼できると見なされます。
task
- 試行されているタスクを説明する読み取り可能なテキスト sql
- 問題を引き起こした SQL クエリまたは更新 (既知の場合)ex
- 問題のある R2dbcException
public static Connection getTargetConnection(Connection con)
Connection
の最も内側のターゲット Connection
を返します。指定された Connection
がラップされている場合、プレーンな Connection
が見つかるまでラップが解除されます。それ以外の場合、渡された接続はそのまま返されます。con
- アンラップする Connection
ラッパー Wrapped.unwrap()