Spring Boot从3.2.5升级到3.3.0后启动失败:EntityManager创建报错
Spring Boot 3.3.0升级后EntityManager创建失败(@BatchSize注解处理错误)
问题说明
将Spring Boot从3.2.5升级到3.3.0后,应用启动失败,EntityManager创建报错:
error processing @AttributeBinderType annotation '@org.hibernate.annotations.BatchSize
问题根源
Spring Boot 3.3.0默认将Hibernate版本升级到了6.5.x,该版本对注解的校验和处理逻辑做了严格调整,@org.hibernate.annotations.BatchSize注解的使用不符合新版本规范时,会直接触发该错误。
解决方案
- 校验
@BatchSize的使用位置:确认注解仅标注在实体类、集合属性上,不要错误地用在普通字段、方法等不支持的位置。Hibernate 6.5.x对注解的适用范围校验更严格,违规标注会直接抛出异常。 - 改用全局批量抓取配置(替代注解):如果不需要针对单个实体/属性做差异化配置,可以在配置文件中全局设置批量抓取参数,避免使用Hibernate特定注解:
# application.properties spring.jpa.properties.hibernate.default_batch_fetch_size=20# application.yml spring: jpa: properties: hibernate: default_batch_fetch_size: 20 - 回退Hibernate版本:若暂时无法调整代码,可手动指定Hibernate版本回退到Spring Boot 3.2.5对应的6.4.x版本:
Maven项目在pom.xml中添加:
Gradle项目在<dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.4.4.Final</version> </dependency>build.gradle中添加:implementation 'org.hibernate.orm:hibernate-core:6.4.4.Final' - 排查依赖冲突:通过
mvn dependency:tree(Maven)或gradle dependencies(Gradle)命令检查依赖树,排除项目中引入的其他版本Hibernate依赖,确保版本统一。
内容的提问来源于stack exchange,提问作者kqr
相关产品推荐
相关产品推荐

