三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

最新版本spring data jpa简介

最新版本spring data jpa简介

围绕最新版 Spring 框架及 Spring Data,JPA 相关的演进主要集中在两个层面:基础依赖升级开发体验优化。以下是核心新特性梳理。

📦 基础升级:拥抱最新生态

最新的 Spring 版本(以 Spring Framework 7.0 和 Spring Data 2025.1.0 为代表)完成了对底层依赖的全面升级。这是所有新特性的基石。

组件升级目标影响
Jakarta EE升级至Jakarta EE 11这标志着对JPA 3.2、Servlet 6.1 等最新规范的支持。
Hibernate升级至Hibernate ORM 7可享受新版本带来的性能改进和特性。
Java 基线Java 25为核心充分利用新版本 Java 的语言特性和性能提升。

🚀 开发体验与性能优化

在底层升级的基础上,Spring Data JPA 本身也在多个方面进行了革新:

1. 查询性能提升

  • 核心变化:在2025.1.0-M1版本中,对于由方法名派生的查询,Spring Data JPA 放弃了原先的Criteria API,转而使用JPQL来生成查询。

  • 意义:这使得查询能够利用 Hibernate 的查询结构缓存,从而显著提升执行性能。

2. 规范API增强

  • 核心变化SpecificationAPI 得到了扩展,除了原有的PredicateSpecification,还新增了UpdateSpecificationDeleteSpecification变体。

  • 意义:这让开发者可以用更类型安全、更面向对象的方式来构建复杂的更新和删除操作,而不仅仅是查询。

3. 空安全性改进

  • 核心变化:Spring Data 代码库开始迁移使用JSpecify注解(一种统一的空值注解标准)来表达参数和返回值的可空性(nullability)。

  • 意义:结合IDE和静态分析工具,能更早地发现潜在的NullPointerException问题,提升代码健壮性。

4. 提前编译(AOT)存储库

  • 核心变化:这是2025.1.0版本的重要特性。Spring Data 存储库支持提前编译(AOT),会在构建阶段生成额外的元数据。

  • 意义:这能为应用带来更快的启动时间更低的内存消耗,尤其对使用 GraalVM 构建原生镜像的应用非常友好。

5. AI时代的新功能

  • 核心变化Spring Data 2025.1.0在多个模块(包括通过hibernate-vector支持的 JPA)中引入了向量搜索方法

  • 意义:这为在现有数据模型和AI应用(如RAG)之间架起了一座桥梁,使得基于相似度的语义搜索成为可能。

💡 版本升级与最佳实践提醒

在升级到基于最新规范(如 Spring Boot 3.4.x)的项目时,有一个重要的实践变更需要注意:

  • @Modifying注解成“强制项”:对于自定义的UPDATEDELETE原生SQL查询,必须明确添加@Modifying@Transactional注解,否则会抛出异常。这是框架为了更严格地遵循JPA规范所做的调整,确保开发者明确区分查询(SELECT)和修改操作。

这些新特性主要集中于Spring Framework 7.0Spring Data 2025.1.0版本中,它们通常会作为Spring Boot 4.0的基础。因此,如果你想在生产环境中使用这些特性,需要留意整个技术栈的升级计划。

← 返回列表