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

Spring Boot 3迁移后无法访问javax.persistence.MappedSuperclass求助

Spring Boot 2 迁移到 3 后的编译错误解决方案

一、解决「无法访问javax.persistence.MappedSuperclass」问题

  • 确认Spring Boot依赖版本完全切换到3.x:确保pom.xml中spring-boot-starter-parent的版本是3.x系列,spring-boot-starter-data-jpa会自动引入Jakarta Persistence API(替代原javax.persistence),无需单独引入javax相关依赖。
  • 排查依赖树中的javax残留:执行命令 mvn dependency:tree,找出仍依赖javax.persistence-api的第三方库,要么升级该库到支持Jakarta的版本,要么通过<exclusions>标签排除javax相关依赖。
  • 全局检查导入语句:确保项目所有涉及JPA的类(实体、MappedSuperclass、Repository等)的导入均为jakarta.persistence.*,不要遗漏任何文件(比如一些工具类、配置类里的导入)。

二、解决「MiscellaneousFeeDetails类找不到setRecordStatus等方法」问题

  • 检查父类继承与方法权限:确认MiscellaneousFeeDetails正确继承了修改后的Jakarta版MappedSuperclass,且父类中setRecordStatus、setUpdatedBy、setUpdateDate方法的访问修饰符为protected或public,保证子类可继承。
  • 升级Lombok版本:若项目使用Lombok生成getter/setter,需将Lombok版本升级至1.18.24及以上(Spring Boot 3兼容版本),老版本Lombok对Jakarta注解的支持存在问题,会导致方法生成失败。
  • 清理编译缓存:执行mvn clean install清理项目编译产物,或在IDE中清理缓存(如IDEA:File -> Invalidate Caches...),避免旧编译文件残留导致的方法找不到问题。
  • 校验方法名拼写:检查父类中方法名的拼写、大小写是否正确,确认子类调用的方法名与父类定义完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 17:42:06