<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spring Data on 吾爱主机</title><link>https://blog.waihost.com/tags/spring-data/</link><description>Recent content in Spring Data on 吾爱主机</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Wed, 01 Jul 2026 01:15:51 +0000</lastBuildDate><atom:link href="https://blog.waihost.com/tags/spring-data/index.xml" rel="self" type="application/rss+xml"/><item><title>Spring Data 2025.0.13 收官发布：3.5.x 项目升级与迁移检查清单</title><link>https://blog.waihost.com/posts/spring-data-2025-0-13-upgrade-guide/</link><pubDate>Wed, 01 Jul 2026 01:15:51 +0000</pubDate><guid>https://blog.waihost.com/posts/spring-data-2025-0-13-upgrade-guide/</guid><description>&lt;img src="https://blog.waihost.com/images/covers/spring-data-2025-0-13-upgrade-guide.svg" alt="Featured image of post Spring Data 2025.0.13 收官发布：3.5.x 项目升级与迁移检查清单" /&gt;&lt;p&gt;Spring Data 2025.0.13 已经发布。对还在 Spring Boot 3.5.x / Spring Data 3.5.x 线上分支上的团队来说，这不是一个“追新功能”的版本，而更像一次收尾性质的维护窗口：官方发布说明明确提到，2025.0.13 是 Spring Data 3.5.x generation 预期的最后一个开源服务版本，并且只包含回归修复。换句话说，如果你的系统还停留在这一代，短期内应该尽快吸收这个补丁；中期则应该把迁移到 2025.1.x / 4.x 系列纳入排期。&lt;/p&gt;
&lt;p&gt;本文用工程实践的角度梳理：这次发布意味着什么、哪些模块值得重点回归、Maven/Gradle 应该怎么升级，以及团队应该怎样规划下一阶段迁移。&lt;/p&gt;
&lt;h2 id="这次发布的关键信息"&gt;&lt;a href="#%e8%bf%99%e6%ac%a1%e5%8f%91%e5%b8%83%e7%9a%84%e5%85%b3%e9%94%ae%e4%bf%a1%e6%81%af" class="header-anchor"&gt;&lt;/a&gt;这次发布的关键信息
&lt;/h2&gt;&lt;p&gt;先把核心事实讲清楚：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Spring Data BOM 版本：&lt;code&gt;2025.0.13&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;发布时间：GitHub Release 显示为 &lt;code&gt;2026-06-24T07:40:08Z&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;发布性质：服务版本，主要面向回归修复。&lt;/li&gt;
&lt;li&gt;官方博客说明：它预期是 Spring Data 3.5.x generation 的最后一个开源发布版本。&lt;/li&gt;
&lt;li&gt;官方建议：尽早升级到最新的 4.0.x（&lt;code&gt;2025.1.x&lt;/code&gt; release train）或 4.1.x release。&lt;/li&gt;
&lt;li&gt;Spring 官方博客还说明，Spring Boot 3.5.16 计划在次日拾取这次 Spring Data 发布。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这几个信息放在一起，结论很直接：&lt;code&gt;2025.0.13&lt;/code&gt; 适合作为 Spring Boot 3.5.x 项目的稳定补丁基线，但不应该被当作长期停留点。&lt;/p&gt;
&lt;h2 id="2025013-包含哪些模块"&gt;&lt;a href="#2025013-%e5%8c%85%e5%90%ab%e5%93%aa%e4%ba%9b%e6%a8%a1%e5%9d%97" class="header-anchor"&gt;&lt;/a&gt;2025.0.13 包含哪些模块
&lt;/h2&gt;&lt;p&gt;Spring Data 使用 release train / BOM 管理一组子项目版本。&lt;code&gt;2025.0.13&lt;/code&gt; 对应的参与模块包括：&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;模块&lt;/th&gt;
					&lt;th style="text-align: right"&gt;对应版本&lt;/th&gt;
					&lt;th&gt;常见使用场景&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Commons&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;Repository 抽象、分页、排序、映射基础设施&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data JPA&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;JPA / Hibernate 持久化&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data MongoDB&lt;/td&gt;
					&lt;td style="text-align: right"&gt;4.5.13&lt;/td&gt;
					&lt;td&gt;MongoDB 文档数据库访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Redis&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;Redis 数据访问与缓存相关集成&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Cassandra&lt;/td&gt;
					&lt;td style="text-align: right"&gt;4.5.13&lt;/td&gt;
					&lt;td&gt;Cassandra 数据访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Elasticsearch&lt;/td&gt;
					&lt;td style="text-align: right"&gt;5.5.13&lt;/td&gt;
					&lt;td&gt;Elasticsearch 数据访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Couchbase&lt;/td&gt;
					&lt;td style="text-align: right"&gt;5.5.13&lt;/td&gt;
					&lt;td&gt;Couchbase 数据访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Neo4j&lt;/td&gt;
					&lt;td style="text-align: right"&gt;7.5.13&lt;/td&gt;
					&lt;td&gt;图数据库访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data REST&lt;/td&gt;
					&lt;td style="text-align: right"&gt;4.5.13&lt;/td&gt;
					&lt;td&gt;Repository REST 暴露&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data Relational&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;JDBC / R2DBC 等关系型访问基础&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data LDAP&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;LDAP 数据访问&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;Spring Data KeyValue&lt;/td&gt;
					&lt;td style="text-align: right"&gt;3.5.13&lt;/td&gt;
					&lt;td&gt;Key-Value 抽象支持&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;如果你的项目通过 Spring Boot 管理依赖，多数情况下不需要手工声明这些子模块版本；跟随 Spring Boot 3.5.16 或显式导入 &lt;code&gt;spring-data-bom:2025.0.13&lt;/code&gt; 即可。&lt;/p&gt;
&lt;h2 id="值得关注的修复点"&gt;&lt;a href="#%e5%80%bc%e5%be%97%e5%85%b3%e6%b3%a8%e7%9a%84%e4%bf%ae%e5%a4%8d%e7%82%b9" class="header-anchor"&gt;&lt;/a&gt;值得关注的修复点
&lt;/h2&gt;&lt;p&gt;这次发布不是大版本功能升级，重点是降低已知回归风险。官方 Release 中比较值得应用开发团队关注的点包括下面几类。&lt;/p&gt;
&lt;h3 id="1-spring-data-commons字段解析相关修复"&gt;&lt;a href="#1-spring-data-commons%e5%ad%97%e6%ae%b5%e8%a7%a3%e6%9e%90%e7%9b%b8%e5%85%b3%e4%bf%ae%e5%a4%8d" class="header-anchor"&gt;&lt;/a&gt;1. Spring Data Commons：字段解析相关修复
&lt;/h3&gt;&lt;p&gt;Spring Data Commons 3.5.13 修复了 &lt;code&gt;TypeDiscoverer&lt;/code&gt; 在子类字段与父类同名字段场景下的解析问题。Release 描述中提到：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;保留子类字段，而不是被父类中被遮蔽的字段覆盖。&lt;/li&gt;
&lt;li&gt;修复属性类型从隐藏的父类字段解析，而不是从子类字段解析的问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这类问题通常不会影响简单 Entity，但在下面这些场景里更容易踩坑：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;领域模型存在继承层次；&lt;/li&gt;
&lt;li&gt;子类重新声明了父类中的同名字段；&lt;/li&gt;
&lt;li&gt;Repository 查询、投影、映射元数据依赖属性类型推断；&lt;/li&gt;
&lt;li&gt;代码生成或历史模型导致字段命名不够干净。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你的项目里有复杂继承模型，升级后建议重点跑 Repository 查询、DTO 投影、Example 查询、排序分页与自定义转换器相关测试。&lt;/p&gt;
&lt;h3 id="2-spring-data-jpajpql--eql-单字符字符串解析修复"&gt;&lt;a href="#2-spring-data-jpajpql--eql-%e5%8d%95%e5%ad%97%e7%ac%a6%e5%ad%97%e7%ac%a6%e4%b8%b2%e8%a7%a3%e6%9e%90%e4%bf%ae%e5%a4%8d" class="header-anchor"&gt;&lt;/a&gt;2. Spring Data JPA：JPQL / EQL 单字符字符串解析修复
&lt;/h3&gt;&lt;p&gt;Spring Data JPA 3.5.13 修复了 JPQL 和 EQL 中集合成员表达式的单字符字符串字面量解析问题。Release 中提到的问题是：单字符字符串字面量作为 &lt;code&gt;MEMBER OF&lt;/code&gt; 左操作数时解析失败。&lt;/p&gt;
&lt;p&gt;受影响的代码可能长得类似下面这样：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-java" data-lang="java"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nd"&gt;@Query&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;select u from User u where &amp;#39;A&amp;#39; member of u.flags&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;User&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;findUsersWithFlagA&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;实际项目中未必完全使用这个写法，但如果你有：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;手写 &lt;code&gt;@Query&lt;/code&gt;；&lt;/li&gt;
&lt;li&gt;动态拼接 JPQL / HQL；&lt;/li&gt;
&lt;li&gt;使用集合属性做成员判断；&lt;/li&gt;
&lt;li&gt;查询中存在单字符枚举值或标记值；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;就应该把这些查询纳入回归测试。&lt;/p&gt;
&lt;h3 id="3-spring-data-jpahibernate-依赖升级"&gt;&lt;a href="#3-spring-data-jpahibernate-%e4%be%9d%e8%b5%96%e5%8d%87%e7%ba%a7" class="header-anchor"&gt;&lt;/a&gt;3. Spring Data JPA：Hibernate 依赖升级
&lt;/h3&gt;&lt;p&gt;Spring Data JPA 3.5.13 的 Release 还列出了 Hibernate 升级到 &lt;code&gt;6.6.53.Final&lt;/code&gt;。这通常是好事，但 ORM 层升级也最容易暴露边界行为差异，例如：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SQL 生成变化；&lt;/li&gt;
&lt;li&gt;方言兼容性差异；&lt;/li&gt;
&lt;li&gt;延迟加载与关联抓取问题；&lt;/li&gt;
&lt;li&gt;Criteria / JPQL 解析差异；&lt;/li&gt;
&lt;li&gt;数据库驱动与 Hibernate 方言组合问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;因此，JPA 项目升级时不要只跑单元测试，最好至少补一轮连接真实数据库的集成测试。&lt;/p&gt;
&lt;h2 id="maven-项目怎么升级"&gt;&lt;a href="#maven-%e9%a1%b9%e7%9b%ae%e6%80%8e%e4%b9%88%e5%8d%87%e7%ba%a7" class="header-anchor"&gt;&lt;/a&gt;Maven 项目怎么升级
&lt;/h2&gt;&lt;p&gt;如果你的项目使用 Spring Boot 3.5.x，并通过 &lt;code&gt;spring-boot-starter-parent&lt;/code&gt; 管理版本，推荐优先升级 Spring Boot 到包含该 Spring Data 版本的补丁版本，例如 Spring Boot 3.5.16：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;parent&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-starter-parent&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;3.5.16&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;relativePath/&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/parent&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果项目不能立刻升级 Spring Boot，但确实需要单独锁定 Spring Data release train，可以在 &lt;code&gt;dependencyManagement&lt;/code&gt; 中导入 BOM：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-xml" data-lang="xml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;dependencyManagement&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.data&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-data-bom&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2025.0.13&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;import&lt;span class="nt"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;pom&lt;span class="nt"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nt"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;&amp;lt;/dependencyManagement&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;不过要注意：Spring Boot 自身也会管理 Hibernate、数据库驱动、Spring Framework 等版本。单独覆盖 Spring Data BOM 虽然可行，但更容易形成“局部升级、整体依赖矩阵未验证”的状态。生产项目优先选择 Spring Boot 补丁版本，通常更稳。&lt;/p&gt;
&lt;h2 id="gradle-项目怎么升级"&gt;&lt;a href="#gradle-%e9%a1%b9%e7%9b%ae%e6%80%8e%e4%b9%88%e5%8d%87%e7%ba%a7" class="header-anchor"&gt;&lt;/a&gt;Gradle 项目怎么升级
&lt;/h2&gt;&lt;p&gt;使用 Spring Boot Gradle 插件的项目，最简单的方式同样是升级 Boot 版本：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-kotlin" data-lang="kotlin"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;plugins&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;org.springframework.boot&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;3.5.16&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;io.spring.dependency-management&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="n"&gt;version&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;1.1.7&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;java&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;如果需要显式导入 Spring Data BOM，可以这样写：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-kotlin" data-lang="kotlin"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;dependencyManagement&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;imports&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;mavenBom&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;org.springframework.data:spring-data-bom:2025.0.13&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;升级后建议运行依赖树检查，确认最终解析出来的版本符合预期：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./gradlew dependencyInsight --dependency spring-data-commons --configuration runtimeClasspath
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./gradlew dependencyInsight --dependency spring-data-jpa --configuration runtimeClasspath
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./gradlew dependencyInsight --dependency hibernate-core --configuration runtimeClasspath
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Maven 项目可以用：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./mvnw dependency:tree -Dincludes&lt;span class="o"&gt;=&lt;/span&gt;org.springframework.data
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;./mvnw dependency:tree -Dincludes&lt;span class="o"&gt;=&lt;/span&gt;org.hibernate.orm:hibernate-core
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="升级前后的回归检查清单"&gt;&lt;a href="#%e5%8d%87%e7%ba%a7%e5%89%8d%e5%90%8e%e7%9a%84%e5%9b%9e%e5%bd%92%e6%a3%80%e6%9f%a5%e6%b8%85%e5%8d%95" class="header-anchor"&gt;&lt;/a&gt;升级前后的回归检查清单
&lt;/h2&gt;&lt;p&gt;建议把这次升级当作一次低风险但必须验证的维护发布。可以按下面顺序做。&lt;/p&gt;
&lt;h3 id="升级前"&gt;&lt;a href="#%e5%8d%87%e7%ba%a7%e5%89%8d" class="header-anchor"&gt;&lt;/a&gt;升级前
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;记录当前 Spring Boot、Spring Data、Hibernate、数据库驱动版本。&lt;/li&gt;
&lt;li&gt;确认项目是否手工覆盖过 &lt;code&gt;spring-data-*&lt;/code&gt; 或 Hibernate 版本。&lt;/li&gt;
&lt;li&gt;找出所有自定义 Repository、&lt;code&gt;@Query&lt;/code&gt;、Specification、Querydsl、Criteria 查询。&lt;/li&gt;
&lt;li&gt;标记有继承结构的 Entity / Document / Projection。&lt;/li&gt;
&lt;li&gt;准备真实数据库或测试容器环境，而不是只跑 mock 测试。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="升级后"&gt;&lt;a href="#%e5%8d%87%e7%ba%a7%e5%90%8e" class="header-anchor"&gt;&lt;/a&gt;升级后
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;运行完整单元测试与集成测试。&lt;/li&gt;
&lt;li&gt;对核心 Repository 做 CRUD、分页、排序、复杂条件查询回归。&lt;/li&gt;
&lt;li&gt;对 JPA 项目检查启动日志中的 Hibernate 版本与 SQL 方言。&lt;/li&gt;
&lt;li&gt;对 MongoDB / Redis / Elasticsearch 项目检查连接、序列化与索引相关逻辑。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;dependency:tree&lt;/code&gt; 或 &lt;code&gt;dependencyInsight&lt;/code&gt; 确认没有混入旧版本 Spring Data 模块。&lt;/li&gt;
&lt;li&gt;在预发环境跑一轮真实流量或关键任务。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="为什么不要长期停留在-20250x"&gt;&lt;a href="#%e4%b8%ba%e4%bb%80%e4%b9%88%e4%b8%8d%e8%a6%81%e9%95%bf%e6%9c%9f%e5%81%9c%e7%95%99%e5%9c%a8-20250x" class="header-anchor"&gt;&lt;/a&gt;为什么不要长期停留在 2025.0.x
&lt;/h2&gt;&lt;p&gt;官方已经把 2025.0.13 定位为 3.5.x generation 预期的最后一个开源服务版本，这意味着后续开源补丁会转向更新的 release train。对企业项目来说，这通常带来三个影响：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;安全与兼容性窗口变窄&lt;/strong&gt;：依赖链上的修复会优先进入新分支。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;升级跨度变大&lt;/strong&gt;：越晚迁移到 2025.1.x / 4.x，累计变化越多，单次升级风险越高。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;生态同步成本上升&lt;/strong&gt;：Spring Boot、Spring Framework、Hibernate、数据库驱动、云原生组件都会继续演进。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;因此更合理的策略是：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;短期：把 3.5.x 项目升级到 &lt;code&gt;2025.0.13&lt;/code&gt; / Boot 3.5.16，拿到最后一批回归修复。&lt;/li&gt;
&lt;li&gt;中期：建立 2025.1.x 或 4.x 的兼容性分支，跑依赖树和自动化测试。&lt;/li&gt;
&lt;li&gt;长期：把主要业务线迁移到新的 Spring Boot / Spring Data 主线，减少历史分支维护成本。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="团队落地建议"&gt;&lt;a href="#%e5%9b%a2%e9%98%9f%e8%90%bd%e5%9c%b0%e5%bb%ba%e8%ae%ae" class="header-anchor"&gt;&lt;/a&gt;团队落地建议
&lt;/h2&gt;&lt;p&gt;如果你负责一个线上 Spring 项目，可以按下面的节奏推进：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;先做补丁升级&lt;/strong&gt;：在当前主线或维护分支升级到 Spring Boot 3.5.16，或至少导入 Spring Data BOM 2025.0.13。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;锁定验证范围&lt;/strong&gt;：重点测试 Repository、JPA 查询、继承模型、MongoDB/Redis 序列化、Elasticsearch 查询。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保留依赖快照&lt;/strong&gt;：把升级前后的依赖树保存到 CI 产物或变更单，方便排查回滚。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;预留迁移分支&lt;/strong&gt;：不要等到必须升级时才看 2025.1.x / 4.x，提前建分支验证编译、启动和关键链路。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;避免局部硬覆盖&lt;/strong&gt;：除非有明确原因，否则不要长期手工覆盖 Spring Data 子模块版本，让 Spring Boot BOM 统一管理更安全。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="小结"&gt;&lt;a href="#%e5%b0%8f%e7%bb%93" class="header-anchor"&gt;&lt;/a&gt;小结
&lt;/h2&gt;&lt;p&gt;Spring Data 2025.0.13 的价值不在于新特性，而在于给 3.5.x generation 一个相对稳妥的收尾版本。对生产系统来说，这类版本往往比“功能发布”更值得及时处理：它能减少已知回归风险，也给后续迁移到 2025.1.x / 4.x 留出缓冲。&lt;/p&gt;
&lt;p&gt;如果你的系统还在 Spring Boot 3.5.x，建议尽快完成补丁升级与回归验证；如果你已经准备进入 Spring Boot 4 / Spring Data 4.x 阶段，则可以把 &lt;code&gt;2025.0.13&lt;/code&gt; 当作维护分支的最后稳定基线，同时把主要精力放到下一代 release train 的兼容性验证上。&lt;/p&gt;</description></item></channel></rss>