Spring Data 2025.1.0-M4 发布

发布 | Mark Paluch | 2025年7月18日 | ...

我谨代表团队和所有贡献者,高兴地宣布下一代 Spring Data 的第四个里程碑版本已发布。该里程碑版本继续提供新功能和改进。

存储库的预先优化

当通过 Spring Boot 的构建插件应用 AOT 优化时,AOT 生成的 Repository 现在默认启用:您不再需要设置 spring.aot.repositories.enabled 属性。此外,您可以通过设置 spring.aot.jpa.repositories.enabled=falsespring.aot.mongodb.repositories.enabled=false 来完全或单独禁用 AOT repository 的生成。

对于 MongoDB,我们为额外的查询方法添加了 AOT repository 支持

  • 将地理空间类型用于 NearWithin 查询
  • 向量搜索
  • 排序规则
  • 值表达式

更新了 MongoDB BigDecimal 和 BigInteger 的默认表示方式

Spring Data MongoDB 已更新其默认设置,对 BigDecimalBigInteger 值(查询和写入)使用 Decimal128。Spring Data MongoDB 5.0 可以读取现有值,但查询和写入将使用 Decimal128。请务必将您的数据迁移到 Decimal128,或者将默认或单个属性切换回使用基于字符串的表示方式。

Spring Data JDBC 中的复合标识符

Spring Data JDBC 支持复合 Id。复合标识符现在可以是复杂类型,理想情况下是具有一组简单属性的类型。一个简单的例子如下所示

class Person {
    @Id Name id; 
    String nickname;
    Integer age;
}

record Name(String first, String last) {
}

虽然对于简单的排列来说不是必需的(复杂 @Id 类型被视为可嵌入类型),但您可以使用 @Embedded(prefix=…) 来配置列名前缀。

Spring Data Redis

Spring Data Redis 现在使用 JSpecify 注解进行标注。Command 和 Operations 接口特意设置为 @NullUnmarked,因为 Redis 的事务行为使得每个方法根据是否在事务或管道上下文中使用而有条件地可为空。我们认为这是在空值指示和解决在特定上下文中不适用的空值指示所带来的麻烦之间最好的折衷。

我们还提供了基于 Jackson 3 的序列化器,同时现有对 Jackson 2 的支持现已弃用。

展望未来,我们将在未来几个月内完成对 Jackson 3 的支持。请参阅我们详细的发行说明以获取完整的更改列表。

感谢所有通过问题报告和拉取请求做出贡献的人。

2025.1.0-M4

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有