You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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中添加:
    <dependency>
        <groupId>org.hibernate.orm</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>6.4.4.Final</version>
    </dependency>
    
    Gradle项目在build.gradle中添加:
    implementation 'org.hibernate.orm:hibernate-core:6.4.4.Final'
    
  • 排查依赖冲突:通过mvn dependency:tree(Maven)或gradle dependencies(Gradle)命令检查依赖树,排除项目中引入的其他版本Hibernate依赖,确保版本统一。

内容的提问来源于stack exchange,提问作者kqr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 05:52:33