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

Spring Boot启动出现IllegalStateException问题求助

解决Spring Boot中找不到jakarta.persistence.EntityManagerFactory的问题

版本兼容性检查

Spring Boot 3.x 全面切换到 Jakarta EE 规范(包路径为jakarta.persistence),而 2.x 版本仍使用 Java EE(包路径为javax.persistence)。如果项目混用了不匹配的版本组合,必然会出现类找不到的问题:

  • 若使用 Spring Boot 3+,确保所有 JPA 相关依赖都基于 Jakarta 规范;
  • 若使用 Spring Boot 2.x,需将依赖换回 Java EE 版本(比如javax.persistence-api而非jakarta.persistence-api)。

确认依赖完整性与无冲突

不要手动单独引入jakarta.persistence-api这种仅含API的依赖,因为它缺少EntityManagerFactory的具体实现(比如Hibernate)。直接使用Spring Boot提供的starter依赖,它会自动管理所有相关依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

执行mvn dependency:tree命令检查依赖树,若发现存在javax.persistence的旧依赖,在对应的依赖中添加排除配置:

<exclusions>
    <exclusion>
        <groupId>javax.persistence</groupId>
        <artifactId>javax.persistence-api</artifactId>
    </exclusion>
</exclusions>

类加载与打包问题处理

  • 确保使用spring-boot-maven-plugin进行打包,Spring Boot的JarLauncher会正确处理类加载逻辑,避免出现类无法被加载的情况;
  • 执行mvn clean install -U清理本地maven缓存并重新构建项目,排除缓存的旧依赖或损坏的编译文件导致的问题。

配置类校验

若你自定义了JPA相关配置类:

  • 检查@EnableJpaRepositories注解是否正确指定了扫描路径与EntityManagerFactory;
  • 确认所有配置代码中引用的是jakarta.persistence下的类,而非旧的javax.persistence包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:04:48