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

Spring Boot启动报错:类路径存在多个不兼容的javax.persistence.JoinTable版本

问题根因

该报错是JPA包版本冲突导致:类路径下存在两个javax.persistence.JoinTable类的实现,其中优先加载的是你项目lib目录下手动引入的低版本javax.persistence.jar,该包版本低于JPA 2.1,缺少Hibernate需要的indexes()方法,另一个则是spring-boot-starter-data-jpa依赖自带的兼容版本jakarta.persistence-api 2.2.3。
同时你的pom文件存在重复的JPA依赖声明,进一步加剧了依赖混乱。

解决步骤
  • 第一步:删除pom重复依赖
    移除pom.xml中如下多余的spring-data-jpa声明,spring-boot-starter-data-jpa已经内置了该依赖,无需单独引入:
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
    </dependency>
    
  • 第二步:删除本地冲突的低版本JPA包
    直接删除路径C:/Users/Usuario/IdeaProjects/spring-security/lib/下的javax.persistence.jar文件,之后打开IDEA的项目结构(File > Project Structure > Libraries),移除对这个旧JPA包的引用。
  • 第三步:清理重建项目
    执行Maven清理命令:mvn clean install,重启IDEA后重新加载所有Maven依赖,再启动项目即可解决冲突。

注:后续尽量不要手动往项目lib目录放入Spring、JPA这类公共依赖包,Spring Boot官方的starter已经默认管理了所有兼容的依赖版本,手动引入极容易出现版本冲突问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 15:57:03