升级org.hibernate:hibernate-core后出现类找不到异常(Java11环境)
解决Hibernate 6.2.0.CR2升级后缺失jakarta.persistence.spi.PersistenceProvider的问题
问题原因
Hibernate 6.x版本已全面切换至Jakarta EE规范,不再使用Java EE时代的javax.persistence包,转而采用jakarta.persistence。而你之前使用的Hibernate 5.6.14.Final基于旧的Java EE规范,升级后项目缺少Jakarta Persistence API的依赖,导致触发NoClassDefFoundError和ClassNotFoundException。
解决步骤
添加Jakarta Persistence API依赖
根据项目构建工具添加对应依赖:
Maven(pom.xml):<dependency> <groupId>jakarta.persistence</groupId> <artifactId>jakarta.persistence-api</artifactId> <version>3.1.0</version> <!-- 适配Hibernate 6.2.x,版本可按需调整 --> </dependency>Gradle(build.gradle):
implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'检查并升级其他JPA相关依赖
确保项目中所有与JPA相关的依赖(如Spring Data JPA等)都已升级到支持Jakarta规范的版本,避免新旧依赖冲突。比如使用Spring Boot的话,需要升级到3.x版本才能适配Jakarta规范。替换代码中的包引用
全局替换代码里的import javax.persistence.*;为import jakarta.persistence.*;,覆盖所有实体类、Repository接口及其他使用JPA注解的代码文件。
内容的提问来源于stack exchange,提问作者vaishali jain
相关产品推荐
相关产品推荐

