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

JHipster降级至v7.9.3后运行报错:无法找到相关类符号

解决JHipster v7.9.3重建项目后的编译错误

错误原因分析

你遇到的编译错误是从JHipster v8降级到v7.9.3后,项目残留了高版本依赖(Hibernate 6+、高版本SpringDoc)的代码/注解,而v7.9.3依赖的低版本库中不存在这些类:

  • JdbcTypeCode、SqlTypes是**Hibernate 6+**新增类,JHipster v7.9.3依赖的是Hibernate 5.x,因此找不到这些类。
  • ParameterObject是高版本SpringDoc的注解,JHipster v7.9.3搭配的SpringDoc版本不包含该注解。

具体修复步骤

1. 替换Hibernate 6专属代码

移除Hibernate 6的注解,改用Hibernate 5的等价实现:

  • 删除import org.hibernate.annotations.JdbcTypeCode;和import org.hibernate.type.SqlTypes;
  • 用@Type+@Column组合定义字段类型,示例:
    // 原Hibernate 6代码
    @JdbcTypeCode(SqlTypes.JSON)
    private Map<String, Object> metadata;
    
    // 替换为Hibernate 5代码
    @Type(type = "json")
    @Column(columnDefinition = "json")
    private Map<String, Object> metadata;
    
  • 若需引用JDBC类型常量,改用java.sql.Types包下的常量(如java.sql.Types.VARCHAR)。

2. 替换SpringDoc的ParameterObject注解

JHipster v7.9.3不支持ParameterObject,可选择以下两种替换方式:

  • 方式一:逐个参数添加@RequestParam
    // 原代码
    @GetMapping("/projects")
    public ResponseEntity<List<Project>> getAllProjects(@ParameterObject ProjectCriteria criteria) {
        // ...
    }
    
    // 替换为
    @GetMapping("/projects")
    public ResponseEntity<List<Project>> getAllProjects(
            @RequestParam(required = false) String name,
            @RequestParam(required = false) LocalDate startDate
            // 其他参数逐一列出
    ) {
        ProjectCriteria criteria = new ProjectCriteria();
        criteria.setName(name);
        criteria.setStartDate(startDate);
        // ...
    }
    
  • 方式二:使用Spring原生@ModelAttribute
    @GetMapping("/projects")
    public ResponseEntity<List<Project>> getAllProjects(@ModelAttribute ProjectCriteria criteria) {
        // ...
    }
    

3. 确认依赖版本匹配

检查pom.xml,确保依赖版本与JHipster v7.9.3一致:

  • Hibernate相关依赖版本应为5.6.x左右,禁止手动引入Hibernate 6+依赖。
  • SpringDoc相关依赖版本应为1.6.x左右,示例:
    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.6.14</version>
    </dependency>
    

4. 清理缓存后重新构建

执行命令清理并重新编译项目:

./mvnw clean install

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:20:11