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

如何在JHipster实体中指定数据库字段名?解决映射错误问题

解决JHipster对接现有数据库时字段名映射不匹配问题

你的问题核心是:只在DTO上加了@Column注解,但Hibernate的ORM映射逻辑是基于JPA实体类的,DTO仅作为数据传输对象不参与数据库交互,所以JHipster默认的驼峰转下划线规则(把countryIso2转成country_iso_2)依然生效,导致SQL查询时匹配了错误的字段。

给你两种可行的解决方法:

方法1:直接修改生成的JPA实体类

找到项目中生成的Documenttypes.java实体类,给countryIso2字段手动添加@Column(name = "country_iso2")注解,示例如下:

@Entity
@Table(name = "document_types")
public class Documenttypes implements Serializable {
    // 其他字段定义...

    @Size(max = 2)
    @Column(name = "country_iso2")
    private String countryIso2;

    // Getters and setters...
}

方法2:修改JHipster实体定义文件(推荐)

直接在JHipster的实体DSL定义中指定数据库列名,这样重新生成实体类时会自动带上正确的@Column注解,避免手动修改后被后续代码生成覆盖。修改后的实体定义如下:

entity Documenttypes(document_types) {
name String required maxlength(255),
status Integer required,
countryIso2 String maxlength(2) column(name="country_iso2"),
createdAt Instant required,
createdBy Integer
}

修改完成后运行jhipster entity Documenttypes重新生成实体类即可。

两种方法都能让Hibernate在生成SQL时使用数据库实际存在的country_iso2字段,解决你遇到的Unknown column 'documentty0_.country_iso_2'错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 12:15:28