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

Spring-orm 5.3.x与Hibernate 6.x整合本地MySQL实例时的类加载异常排查求助

问题根源分析

你的异常核心是java.lang.ClassNotFoundException: javax.transaction.SystemException,结合你的配置和依赖来看,主要是两个关键问题导致的:

  1. Spring 5.3.x与Hibernate 6.x版本不兼容:Spring 5.x系列基于javax.persistence规范,而Hibernate 6.x已经完全迁移到jakarta.persistence(Java EE更名Jakarta EE后的新规范),两者API包名不匹配,导致Spring ORM组件无法找到对应的类。
  2. 缺少JTA事务API依赖:javax.transaction.SystemException属于JTA事务规范的核心类,你的pom.xml里没有引入这个依赖,直接触发了类加载失败。
具体解决方案

1. 降级Hibernate到Spring 5.3.x兼容版本

Spring 5.3.x和Hibernate 6.x存在API层面的冲突,需要把Hibernate Core版本改为5.6.15.Final(这是Spring官方推荐的兼容版本),修改pom.xml中的依赖:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.6.15.Final</version>
</dependency>

补充:如果想使用Hibernate 6.x,你需要升级Spring到6.x版本,但Spring 6.x要求Java 17及以上,根据你的日志来看当前用的是Java 17,不过如果继续用Spring 5.3.x,必须降级Hibernate。

2. 添加JTA事务API依赖

在pom.xml中加入javax.transaction-api依赖,解决SystemException找不到的问题:

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>javax.transaction-api</artifactId>
    <version>1.3</version>
</dependency>

3. 统一实体类与DAO的注解包

你的实体类目前使用jakarta.persistence.*注解,而Hibernate 5.x和Spring 5.x默认适配javax.persistence.*,需要替换导入包:

// 替换前
import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
// 替换后
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

同时DAO类中的事务注解也要替换为Spring 5.x对应的包:

// 替换前
import jakarta.transaction.Transactional;
// 替换后
import org.springframework.transaction.annotation.Transactional;

4. 优化Hibernate方言配置

针对MySQL 8.0+,建议使用专门的MySQL8Dialect来更好支持新版本特性,修改Spring配置文件中的方言属性:

<prop key="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</prop>
验证步骤
  1. 执行mvn clean install更新依赖并清理旧编译文件
  2. 重新运行App.java的main方法
  3. 此时应该能正常执行CRUD操作,版本兼容和依赖缺失的问题都已解决

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 20:42:29