Spring Boot 3升级:hibernate-jpamodelgen与openapi-generator-cli兼容异常
Spring Boot 3.0.2升级后JPA静态模型生成异常问题
将应用从Spring Boot 2.7.7升级至3.0.2后,出现如下冲突问题:同时使用hibernate-jpamodelgen:6.1.7.Final生成JPA静态模型,以及openapi-generator-cli-6.3.0通过api.yaml生成默认控制器代码时,JPA静态模型无法生成,且无任何报错信息。
无法生成JPA模型的配置
plugins { id "org.springframework.boot" version "3.0.2" id "org.hibernate.orm" version "6.1.7.Final" } . . . dependencies { annotationProcessor "org.hibernate.orm:hibernate-jpamodelgen:6.1.7.Final" antlr group: 'org.antlr', name: 'antlr4', version: '4.11.1' . . . . . testAnnotationProcessor "org.hibernate.orm:hibernate-jpamodelgen:6.1.7.Final" . . . . swaggerCodegen group: 'org.openapitools', name: 'openapi-generator-cli', version: '6.3.0' } compileJava { dependsOn = ['generateSwaggerCode', 'generateGrammarSource'] excludes = ['**/TestController.java'] }
可正常生成JPA模型的配置
切换使用swagger-codegen-cli-3.0.40.jar生成代码时,JPA静态模型生成正常,对应配置如下:
plugins { id "org.springframework.boot" version "3.0.2" id "org.hibernate.orm" version "6.1.7.Final" } . . . dependencies { annotationProcessor "org.hibernate.orm:hibernate-jpamodelgen:6.1.7.Final" antlr group: 'org.antlr', name: 'antlr4', version: '4.11.1' . . . . . testAnnotationProcessor "org.hibernate.orm:hibernate-jpamodelgen:6.1.7.Final" . . . . swaggerCodegen group: 'io.swagger.codegen.v3', name: 'swagger-codegen-cli', version: '3.0.40' swaggerCodegen group: 'io.swagger.codegen.v3', name: 'swagger-codegen-generators', version: '1.0.37' } compileJava { dependsOn = ['generateSwaggerCode', 'generateGrammarSource'] excludes = ['**/TestController.java'] }
排查方向参考
- 检查
openapi-generator-cli-6.3.0的依赖是否与hibernate-jpamodelgen存在注解处理器冲突,新版本OpenAPI Generator可能引入额外注解处理器,干扰了Hibernate的模型生成流程。 - 尝试显式分离注解处理器依赖声明,确保
hibernate-jpamodelgen的注解处理器在OpenAPI生成代码的编译步骤前执行。 - 执行
./gradlew compileJava --info命令查看Gradle注解处理器任务的详细日志,定位是否存在隐性错误或跳过逻辑。
内容的提问来源于stack exchange,提问作者jeet427
相关产品推荐
相关产品推荐

