|
此版本仍在开发中,尚未被视为稳定版本。如需使用最新的稳定版本,请使用 Spring Data Relational 4.0.4! |
迁移指南
以下各节说明如何迁移到新版本的 Spring Data R2DBC。
从 1.1.x 升级到 1.2.x
Spring Data R2DBC 的开发初衷是为了评估 R2DBC 与 Spring 应用程序的集成效果。
其中一个主要目标是,一旦 R2DBC 支持被证明有用,就将核心支持移入 Spring Framework。
Spring Framework 5.3 引入了一个新模块:Spring R2DBC(spring-r2dbc)。
spring-r2dbc 提供了核心的 R2DBC 功能(包括精简版的 DatabaseClient、事务管理器、连接工厂初始化和异常转换),这些功能最初由 Spring Data R2DBC 提供。
1.2.0 版本通过以下各节中所述的若干变更,与 Spring R2DBC 所提供的功能保持一致。
Spring R2DBC 的 DatabaseClient 是一个更轻量级的实现,它封装了一个纯面向 SQL 的接口。
你会注意到,用于执行 SQL 语句的方法已从 DatabaseClient.execute(…) 变更为 DatabaseClient.sql(…)。
用于 CRUD 操作的流式 API 已移至 R2dbcEntityTemplate 中。
如果你通过日志记录器前缀 org.springframework.data.r2dbc 来记录 SQL 语句,请务必将其更新为 org.springframework.r2dbc(即移除 .data),以指向 Spring R2DBC 组件。
弃用
-
已弃用
o.s.d.r2dbc.core.DatabaseClient及其支持类ConnectionAccessor、FetchSpec、SqlProvider以及少数其他类。 命名参数支持类(例如NamedParameterExpander)已被 Spring R2DBC 的DatabaseClient实现封装,因此我们不提供替代方案,因为这些最初属于内部 API。 请使用o.s.r2dbc.core.DatabaseClient及其从org.springframework.r2dbc.core可用的 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包。 请改用 Spring R2DBC 提供的对应组件,位于o.s.r2dbc.connection包中。 -
弃用
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 目前提供了一种轻量级的异常转换变体(暂无 SPI),可通过o.s.r2dbc.connection.ConnectionFactoryUtils#convertR2dbcException使用。
Spring R2DBC 提供的替换项用法
为简化迁移,多个已弃用的类型现在已成为 Spring R2DBC 提供的替代类型的子类型。 Spring Data R2DBC 已更改了若干方法,或引入了接受 Spring R2DBC 类型的新方法。 具体而言,以下类已发生变更:
-
R2dbcEntityTemplate -
R2dbcDialect -
org.springframework.data.r2dbc.query中的类型
如果您直接使用这些类型,我们建议您检查并更新您的导入语句。