适用于 Core (SQL) API 的 Spring Data Azure Cosmos DB v3:发行说明和资源

适用于: SQL API

开发人员可以通过适用于 Core (SQL) 的 Spring Data Azure Cosmos DB 版本 3 在 Spring 应用程序中使用 Azure Cosmos DB。 Spring Data Azure Cosmos DB 公开 Spring Data 接口,以便操作数据库和集合、使用文档和发出查询。 同一 Maven 项目中同时支持 Sync 和 Async (Reactive) API。

重要

Spring Data Azure Cosmos DB 依赖于 Spring Data 框架。

版本 3.0.0 到 3.4.0 的 azure-spring-data-cosmos 支持 Spring Data 版本 2.2 和 2.3。

版本 3.5.0 及更高版本的 azure-spring-data-cosmos 支持 Spring Data 版本 2.4.3 及更高版本。

Spring Framework 是一种简化 Java 应用程序开发的编程和配置模型。 Spring 使用依赖项注入来简化应用程序的“管道”。 由于 Spring 使得生成和测试应用程序变得更加简单,因此许多开发人员都喜欢 Spring。 Spring Boot 重视 Web 应用程序和微服务的开发,扩展了这种管道处理。 Spring Data 是一种编程模型和框架,用于从 Spring 或 Spring Boot 应用程序的上下文中访问数据存储(如 Azure Cosmos DB)。

可在 Azure Spring Cloud 应用程序中使用 Spring Data Azure Cosmos DB。

重要

这些发行说明适用于 Spring Data Azure Cosmos DB 的版本 3。 可以在此处找到版本 2 的发行说明

Spring Data Azure Cosmos DB 仅支持 SQL API。

请参阅以下文章,了解其他 Azure Cosmos DB API 上的 Spring Data:

快速入门

按照 Spring Boot 入门指南来启动并运行 Spring Data Azure Cosmos DB。 建议使用 Spring Boot 入门方法来开始使用 Spring Data Azure Cosmos DB 连接器。

或者,你可以将 Spring Data Azure Cosmos DB 依赖项添加到 pom.xml 文件中,如下所示:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-spring-data-cosmos</artifactId>
    <version>latest-version</version>
</dependency>

帮助性内容

Content 链接
SDK 下载 Maven
API 文档 Java API 参考文档
参与 SDK GitHub 上用于 Java 的 Azure SDK 中央存储库
入门 快速入门:构建一个 Spring Data Azure Cosmos DB 应用以管理 Azure Cosmos DB SQL API 数据
具有快速入门代码的 GitHub 存储库
基本代码示例 Azure Cosmos DB:适用于 SQL API 的 Spring Data Azure Cosmos DB 示例
具有示例代码的 GitHub 存储库
性能提示 Java SDK v4 的性能提示(适用于 Spring Data)
故障排除 Java SDK v4 疑难解答(适用于 Spring Data)
Azure Cosmos DB 研讨会和实验室 Cosmos DB 研讨会主页

重要

  • 3.5.0 版本支持 Spring Boot 2.4.3 及更高版本。

发布历史记录

3.8.0-beta.1(未发布)

3.7.0 (2021-05-12)

新功能

3.6.0 (2021-04-06)

新功能

  • 已将 azure-cosmos 更新为版本 4.14.0。

3.5.1 (2021-03-24)

关键 Bug 修复

  • 已将 azure-cosmos 更新为修补程序版本 4.13.1。

3.5.0 (2021-03-11)

重要

此版本支持 Spring Boot 2.4.3 及更高版本。

新功能

  • 已将 spring-boot 更新为主版本 2.4.3。
  • 已将 spring-core 更新为主版本 5.3.4。
  • 已将 spring-data-commons 更新为主版本 2.4.5。
  • 已将 azure-cosmos 版本更新为 4.13.0。
  • 已添加对 org.springframework.data.domain.Persistable 实体类型的支持。
  • 已添加对日志 SQL 查询的支持。
  • 已添加对带 @query 批注的查询的 PageableSort 支持。

关键 Bug 修复

  • 修复了对可审核框架使用自动生成 ID 时的问题。
  • 修复了带 @query 批注的查询的查询反序列化问题。

3.4.0 (2021-02-09)

新功能

  • 已将 azure-cosmos 版本更新为 4.12.0。

关键 Bug 修复

  • 修复了 Java 11 模块的 @EnableAuditing

3.3.0 (2021-01-15)

新功能

  • 支持 CosmosIndexPolicy 注释中的组合索引。
  • 支持更改 CosmosIndexPolicy 注释。
  • 已将 azure-cosmos 版本更新为 4.11.0。

关键 Bug 修复

  • 修复了查询生成的排序和限制。

3.2.0 (2020-12-11)

新功能

  • 已将 Spring Data Commons 版本更新为 2.3.5.RELEASE。
  • 已将 Spring Core 版本更新为 5.2.10.RELEASE。

关键 Bug 修复

  • 修复了使用发布的 jar 发布 spring.factories 文件的问题。
  • 修复了存储库查询参数重复的问题。

3.1.0 (2020-10-21)

新功能

  • 添加了对 ARRAY_CONTAINS CriteriaType 的支持。
  • 已将 azure-cosmos 版本更新为 4.7.1。

关键 Bug 修复

  • 修复了带批注的查询不选取带批注的容器名称的问题。

3.0.0 (2020-09-30)

新功能

  • 已将 azure-cosmos 依赖项更新为 4.6.0

3.0.0-beta.2 (2020-09-17)

新功能

  • 已将项目 ID 更新为 azure-spring-data-cosmos
  • 已将 azure-cosmos 依赖项更新为 4.5.0
  • Query Annotation 支持本机查询。
  • 支持 Java 11。
  • 通过在 @Container 批注中公开 partitionKeyPath 字段,添加了对嵌套分区键的支持。
  • 添加了对 limit 查询类型的支持,允许在定义存储库 API 时使用 topfirst

关键 Bug 修复

  • 修复了与 @GeneratedValue 批注一起使用时的嵌套分区键 bug。

3.0.0-beta.1 (2020-08-17)

新功能

  • 已将组 ID 更新为 com.azure
  • 已将项目 ID 更新为 azure-spring-data-cosmos-core
  • azure-cosmos SDK 依赖项更新为 4.3.2-beta.2
  • 支持审核实体 - 自动管理 createdBy、createdDate、lastModifiedBy 和 lastModifiedDate 注释字段。
  • @GeneratedValue 批注支持为 String 类型的 ID 字段自动生成 ID。
  • 多数据库配置支持具有多个数据库的单个 cosmos 帐户和具有多个数据库的多个 cosmos 帐户。
  • 支持任何字符串字段上的 @Version 注释。
  • 同步 API 返回类型更新为 Iterable 类型,而非 List
  • CosmosClientBuilder 从 Cosmos SDK 作为 Spring Bean 公开给 @Configuration 类。
  • 更新了 CosmosConfig,以包含查询指标和响应诊断处理器实现。
  • 支持为单个结果查询返回 Optional 数据类型。

重命名

  • CosmosDbFactory 重命名为 CosmosFactory
  • CosmosDBConfig 重命名为 CosmosConfig
  • CosmosDBAccessException 重命名为 CosmosAccessException
  • Document 注释重命名为 Container 注释。
  • DocumentIndexingPolicy 注释重命名为 CosmosIndexingPolicy 注释。
  • DocumentQuery 重命名为 CosmosQuery
  • application.properties 标志 populateQueryMetrics 重命名为 queryMetricsEnabled

关键 Bug 修复

  • 将诊断日志记录任务调度给 Parallel 线程,以避免阻塞 Netty I/O 线程。
  • 修复了对删除操作的乐观锁定。
  • 修复了对 IN 子句查询进行转义时出现的问题。
  • 通过允许为 @Id 使用 long 数据类型修复了问题。
  • 通过允许将 booleanlongintdouble 作为 @PartitionKey 注释的数据类型修复了问题。
  • 为忽略大小写查询修复了 IgnoreCase & AllIgnoreCase 关键字。
  • 删除了自动创建容器时的默认请求单位值 4000。

附加说明

  • Spring Data Azure Cosmos DB 支持 Java JDK 8 和 Java JDK 11。
  • 当前支持 Spring Data 2.3,当前不支持 Spring Data 2.4。

常见问题解答

1.如何向客户通知即将停用的 SDK?

Azure 会在即将停用的 SDK 的支持结束之前提前 12 个月进行通知,以便协助平稳地转换到支持的 SDK。 此外,会通过各种通信渠道(Azure 管理门户、开发人员中心、博客文章以及与分配的服务管理员的直接通信)来通知客户。

2.在这 12 个月期间,客户是否可以使用“即将”停用的 Azure Cosmos DB SDK 来创作应用程序?

可以,客户在 12 个月宽限期内具有完全访问权限,可以使用“即将”停用的 Azure Cosmos DB SDK 创作、部署和修改应用程序。 在 12 个月宽限期内,建议客户根据相应情况迁移到支持的较新版本 Azure Cosmos DB SDK。

3.在 12 个月通知期之后,客户是否可以使用已停用的 Azure Cosmos DB SDK 创建和修改应用程序?

在 12 个月通知期之后,SDK 会停用。 Azure Cosmos DB 平台不允许使用已停用 SDK 的应用程序对 Azure Cosmos DB 进行任何访问。 此外,Azure 不会对已停用的 SDK 提供客户支持。

4.如果客户运行使用不支持的 Azure Cosmos DB SDK 版本的应用程序,会发生什么情况?

任何使用已停用 SDK 版本连接 Azure Cosmos DB 服务的尝试都会被拒绝。

5.新特性和功能是否会适用于所有未停用的 SDK?

新特性和功能只添加到新版本。 如果使用的是未停用的旧版本 SDK,则对 Azure Cosmos DB 进行的请求仍会与以前一样正常工作,但是你无法访问任何新功能。

6.如果无法在截止日期之前更新应用程序,该怎么办?

我们建议尽早升级到最新 SDK。 SDK 标记为要停用之后,会有 12 个月来更新应用程序。 如果由于任何原因而无法在此时间范围内完成应用程序更新,请在截止日期之前与 Cosmos DB 团队联系并请求其帮助。

后续步骤

了解有关 Azure Cosmos DB 的详细信息。

了解有关 Spring Framework 的详细信息。

详细了解有关 Spring Boot 的详细信息。

详细了解有关 Spring Data 的详细信息。