R2DBC
Spring Data R2DBC 模块将 Spring 的核心概念应用于使用 R2DBC 数据库驱动程序的解决方案开发,并与领域驱动设计原则保持一致。我们提供一个“模板”,作为存储和查询聚合的高层抽象。
本文档是 Spring Data R2DBC 支持的参考指南。它讲解相关的概念、语义和语法。
本章指出 R2DBC 在仓库支持方面的特别之处。它建立在使用 Spring Data 仓库中讲解的核心仓库支持之上。您应充分理解其中讲解的基本概念。
R2DBC 包含广泛的特性:
-
Spring 配置支持,通过基于 Java 的 @Configuration 类为 R2DBC 驱动程序实例提供配置。
-
R2dbcEntityTemplate 作为面向实体操作的核心类,在行与 POJO 之间集成对象映射,在执行常见 R2DBC 操作时提高生产力。
-
功能丰富的对象映射,与 Spring 的转换服务集成。
-
基于注解的映射元数据,可扩展以支持其他元数据格式。
对于大多数任务,您应使用 R2dbcEntityTemplate 或仓库支持,二者都使用丰富的映射功能。R2dbcEntityTemplate 是您查找即席 CRUD 操作等访问功能之处。
本节小结
📄️ 入门
初始化工作环境的一个简单方法,是在 Spring Tools 中或通过 Spring Initializr 创建一个基于 Spring 的项目。
📄️ 持久化实体
R2dbcEntityTemplate 是 Spring Data R2DBC 的核心入口。它既提供面向实体的直接方法,也为查询、插入、更新和删除数据等典型即席用例提供更精简的流式接口。
📄️ 序列支持
主键属性(标注了 @Id )也可以标注 @Sequence 。 @Sequence 注解的存在表示,该属性的初始值应在对象保存时从数据库序列中获取。数据库生成序列的能力取决于所使用的数据库方言。在没有 @Sequence 注解时,假定相应列的值在插入行时由数据库自动生成。
📄️ 映射
`MappingR2dbcConverter` 提供了丰富的映射支持。它拥有丰富的元数据模型,可将领域对象映射到数据行。映射元数据模型通过在领域对象上使用注解来填充。不过,该基础设施并不限于将注解作为元数据信息的唯一来源。 `MappingR2dbcConverter` 还允许您在不提供任何额外元数据的情况下,通过遵循一组约定将对象映射到行。
📄️ 属性路径
本章介绍属性路径的概念。属性路径是一种穿越领域类进行导航的形式,用于在与模型交互的上下文中应用某些方面。应用程序代码向数据访问组件提供属性路径,以表达诸如在查询中选择属性、构造谓词或应用排序之类的意图。属性路径源自其所属类型,可以由一段或多段组成。
📄️ R2DBC 仓库
本章指出 R2DBC 在仓库支持方面的特别之处。它建立在《使用 Spring Data 仓库》中讲解的核心仓库支持之上。在阅读本章之前,您应充分理解其中讲解的基本概念。
📄️ 查询方法
您通常在仓库上触发的大多数数据访问操作,都会导致对数据库运行一条查询。定义这样的查询只需在仓库接口上声明一个方法,如下例所示:
📄️ EntityCallbacks
Spring Data R2DBC 使用 EntityCallback API 提供其审计支持,并响应以下回调。
📄️ 审计
自 Spring Data R2DBC 1.2 起,可以通过给配置类添加 @EnableR2dbcAuditing 注解来启用审计,如下例所示:
📄️ Kotlin
本部分参考文档讲解 Spring Data R2DBC 提供的 Kotlin 专属功能。关于 Spring Data 提供的通用功能,请参阅 Kotlin 支持。
📄️ 迁移指南
以下各节说明如何迁移到 Spring Data R2DBC 的更新版本。