移行ガイド
次のセクションでは、Spring Data R2DBC の新しいバージョンに移行する方法について説明します。
1.1.x から 1.2.x へのアップグレード
Spring Data R2DBC は、R2DBC が Spring アプリケーションとどの程度統合できるかを評価することを目的として開発されました。主な側面の 1 つは、R2DBC サポートが有用であることが証明されたら、コアサポートを Spring Framework に移行することでした。Spring Framework 5.3 には、新しいモジュール Spring R2DBC(spring-r2dbc
)が付属しています。
spring-r2dbc
は、Spring Data R2DBC によって最初に提供されたコア R2DBC 機能(DatabaseClient
のスリムなバリアント、トランザクションマネージャー、接続ファクトリの初期化、例外変換)を提供します。1.2.0 リリースは、次のセクションで概説するいくつかの変更を加えることにより、Spring R2DBC で提供されるものと一致します。
Spring R2DBC の DatabaseClient
は、純粋な SQL 指向のインターフェースをカプセル化するより軽量な実装です。SQL ステートメントを実行する方法が DatabaseClient.execute(…)
から DatabaseClient.sql(…)
に変更されていることに気付くでしょう。CRUD 操作用の流れるような API は R2dbcEntityTemplate
に移行しました。
ロガープレフィックス org.springframework.data.r2dbc
を介して SQL ステートメントのロギングを使用する場合は、Spring R2DBC コンポーネントを指すように、必ず org.springframework.r2dbc
に更新してください(つまり、.data
を削除してください)。
非推奨
o.s.d.r2dbc.core.DatabaseClient
とそのサポートクラスConnectionAccessor
、FetchSpec
、SqlProvider
およびその他のいくつかの非推奨。NamedParameterExpander
などの名前付きパラメーターサポートクラスは、Spring R2DBC のDatabaseClient
実装によってカプセル化されているため、これはそもそも内部 API であったため、代替は提供していません。org.springframework.r2dbc.core
から入手可能なo.s.r2dbc.core.DatabaseClient
およびそれらの Spring R2DBC 代替を使用してください。エンティティベースのメソッド(select
/insert
/update
/delete
)メソッドは、バージョン 1.1 で導入されたR2dbcEntityTemplate
を介して利用できます。o.s.d.r2dbc.connectionfactory
、o.s.d.r2dbc.connectionfactory.init
、o.s.d.r2dbc.connectionfactory.lookup
パッケージの非推奨。o.s.r2dbc.connection
にある Spring R2DBC のバリアントを使用します。o.s.d.r2dbc.convert.ColumnMapRowMapper
の非推奨。代わりにo.s.r2dbc.core.ColumnMapRowMapper
を使用してください。バインディングサポートクラス
o.s.d.r2dbc.dialect.Bindings
、BindMarker
、BindMarkers
、BindMarkersFactory
および関連する型の非推奨。org.springframework.r2dbc.core.binding
の代替を使用してください。BadSqlGrammarException
、UncategorizedR2dbcException
の非推奨、o.s.d.r2dbc.support
での例外変換。Spring R2DBC は、現在o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcException
を通じて利用可能な SPI なしのスリムな例外変換バリアントを提供します。
Spring R2DBC が提供する代替の使用
移行を容易にするために、いくつかの非推奨の型は、Spring R2DBC によって提供されるそれらの代替のサブ型になりました。Spring Data R2DBC では、いくつかのメソッドが変更されたか、Spring R2DBC 型を受け入れる新しいメソッドが導入されました。具体的には、次のクラスが変更されます。
R2dbcEntityTemplate
R2dbcDialect
org.springframework.data.r2dbc.query
の型
これらの型を直接操作する場合は、インポートを確認して更新することをお勧めします。