升级Spring Boot 3与Java 17后JPA Metamodel源码无法生成求助
Spring Boot 3.0 + Java 17 下 hibernate-jpamodelgen 元模型生成问题解决办法
补全依赖配置
Spring Boot 3.0对应Hibernate 6.x版本,hibernate-jpamodelgen需要指定provided作用域才能触发注解处理器工作,修正后的Maven依赖如下:<dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-jpamodelgen</artifactId> <scope>provided</scope> </dependency>若使用Gradle,需直接配置为注解处理器依赖:
annotationProcessor 'org.hibernate.orm:hibernate-jpamodelgen'适配Java 17模块系统
如果项目使用了JPMS模块(存在module-info.java),需要在模块声明中添加:// 引入jpamodelgen模块 requires org.hibernate.orm.jpamodelgen; // 开放实体类包给Hibernate及注解处理器 opens com.yourproject.entities to org.hibernate.orm.core, org.hibernate.orm.jpamodelgen;检查IDE注解处理器开关
- IntelliJ IDEA:进入
设置 -> 构建、执行、部署 -> 编译器 -> 注解处理器,勾选启用注解处理,确认hibernate-jpamodelgen被列入已检测的处理器列表。 - Eclipse:进入
项目属性 -> Java编译器 -> 注解处理,勾选启用注解处理,并在工厂路径中添加hibernate-jpamodelgen的jar包。
- IntelliJ IDEA:进入
确认实体类注解规范
Spring Boot 3.0全面切换到Jakarta EE API,实体类的JPA注解必须来自jakarta.persistence包(如@Entity、@Id),不能再使用旧的javax.persistence包下的注解,否则注解处理器无法识别实体类。
内容的提问来源于stack exchange,提问作者java-spring
相关产品推荐
相关产品推荐

