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

升级Spring Boot 3.3.0后创建entityManagerFactory报错求助

Spring Boot 3.3.0升级后Hibernate使用Jakarta而非Javax的解决方案

你的问题核心是依赖冲突:Spring Boot 3.x全面基于Jakarta EE,但pom.xml中存在多个仍依赖Javax生态的库,导致Hibernate加载时拉取了Javax的类。以下是具体解决步骤:

1. 替换Hibernate Types版本

当前使用的hibernate-types-55适配的是Hibernate 5.x(Javax生态),而Spring Boot 3.x集成的是Hibernate 6.x(Jakarta生态),必须更换为对应版本:

<dependency>
    <groupId>com.vladmihalcea</groupId>
    <artifactId>hibernate-types-60</artifactId>
    <version>2.21.1</version> <!-- 选择适配Hibernate 6.x的最新稳定版 -->
</dependency>

2. 升级Kie依赖到Jakarta兼容版本

Kie 7.x系列基于Javax,Kie 8.x才切换到Jakarta EE,需要把所有kie相关依赖升级到8.x版本(示例选用兼容Spring Boot 3.3.0的稳定版):

<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-api</artifactId>
    <version>8.44.0.Final</version>
</dependency>
<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-ci</artifactId>
    <version>8.44.0.Final</version>
</dependency>
<dependency>
    <groupId>org.kie</groupId>
    <artifactId>kie-internal</artifactId>
    <version>8.44.0.Final</version>
</dependency>

3. 清理冗余/冲突依赖

  • 移除手动添加的jakarta.transaction-api:spring-boot-starter-data-jpa已包含适配的Jakarta事务API,手动添加会引发版本冲突。
  • 替换JUnit 4为JUnit 5:Spring Boot 3.x的spring-boot-starter-test默认使用JUnit Jupiter,移除原junit:junit依赖,改用JUnit 5 API:
    <!-- 移除原junit依赖,替换为以下内容 -->
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <scope>test</scope>
    </dependency>
    
  • 移除org.springframework:spring-test:spring-boot-starter-test已包含该依赖,无需重复添加。

4. 验证依赖树

执行Maven命令排查是否仍有Javax依赖残留:

mvn dependency:tree | grep javax

若输出存在Javax相关依赖,找到对应的父依赖,要么升级父依赖版本,要么通过exclusions排除Javax依赖,示例:

<dependency>
    <!-- 存在Javax依赖的第三方库 -->
    <groupId>xxx</groupId>
    <artifactId>xxx</artifactId>
    <exclusions>
        <exclusion>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </exclusion>
        <!-- 添加其他需要排除的Javax相关依赖 -->
    </exclusions>
</dependency>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:07:05