Spring Data 2025.1.0-M6 发布

发布 | Mark Paluch | 2025年9月12日 | ...

我谨代表团队和所有贡献者,高兴地宣布下一代 Spring Data 的第六个也是最后一个里程碑版本已发布。该里程碑版本继续提供新功能、改进和依赖项升级。

移除了 MongoDB UUID 和 BigDecimal 默认值

Spring Data MongoDB 现在与 MongoDB Java Driver 对齐,不再为 UUID 值提供默认表示形式。相反,您需要通过驱动程序设置显式配置所需的表示形式。

我们也不再为BigInteger提供默认配置值,并根据MongoDB的默认编解码器将BigDecimal的默认值恢复为Decimal128。这是一种更安全的方法,可以防止您的应用程序在升级到新的主要版本时不小心切换表示形式。请确保通过MongoCustomConversions配置大数字的格式。

BigDecimal表示形式设置为STRINGDECIMAL128允许您控制BigDecimalBigInteger值的默认表示形式。通过@Field(targetType = FieldType.DECIMAL128)@Field(targetType = FieldType.STRING)进行的任何显式类型提示不受影响。

JDBC 和 Apache Cassandra 的 AOT 仓库支持

此里程碑版本附带了对 Spring Data JDBC 和 Spring Data for Apache Cassandra 仓库的 AOT 支持。这包括对查询派生、声明式查询和命名查询的支持。

预先生成的属性访问器和实体实例化器

启用 AOT 处理时,Spring Data 会在构建时将生成的属性访问器和实体实例化器包含在最终的 AOT 包中。我们现在会在 AOT 优化期间捕获生成的类,而不是在运行时生成这些类。这可以提高启动时间并减少内存消耗。此外,生成的属性访问器和实体实例化器现在可在 GraalVM 本机映像中使用。

Jackson 3 支持

我们很高兴地宣布,Spring Data Commons 和 Spring Data REST 模块现在支持 Jackson 3。虽然 Spring Data Commons 附带了已弃用的 Jackson 2 类,并且仍可使用 Jackson 2 运行,但 Spring Data REST 需要 Jackson 3,因为 Spring Data REST 在某种意义上是对 Jackson 的巨大抽象。

Spring Data Neo4j 现在支持在仓库级别基于向量索引的向量搜索方法。仓库方法必须使用@VectorSearch(indexName,numberOfNodes)注解才能利用 Neo4j 的向量搜索功能。向量搜索可以与已有的搜索函数(例如findByName)结合使用,并且将在进行名称过滤之前调用向量搜索。Vector参数是使查询工作的强制参数,但它也可以通过Score截止值进行增强,以忽略低质量结果。

interface VectorSearchRepository extends CrudRepository<EntityWithVector, String> {

  @VectorSearch(indexName = "entityIndex", numberOfNodes = 2)
  SearchResults<EntityWithVector> findAllBy(Vector searchVector);

  @VectorSearch(indexName = "entityIndex", numberOfNodes = 2)
  SearchResult<EntityWithVector> findBy(Vector searchVector, Score score);

}

有关 Spring Data Neo4j 向量搜索的更多详细信息,请参阅参考文档

此里程碑是进入 10 月发布候选阶段之前的最后一个里程碑,随后将在 11 月全面发布。我们鼓励您试用新功能和改进,并提供反馈,以帮助我们使 Spring Data 变得更好。

2025.1.0-M6

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有