【问题标题】:How does JPA map a column name to a field if the column name is different than the field name?如果列名与字段名不同,JPA 如何将列名映射到字段?
【发布时间】:2021-12-08 23:57:57
【问题描述】:

假设我有一个表Students,其中包含varchar firstnamevarchar lastname 列。

由于某种原因,我的实体类具有不同名称的字段,例如 String fnameString lname

那么 JPA 如何正确映射列和字段呢?

【问题讨论】:

    标签: hibernate jpa hibernate-mapping


    【解决方案1】:

    你可以使用@Column注解,例如

    @Entity(name="Students")
    public class Students {
        @Column(name = "firstname")
        private String fname;
    
        @Column(name = "lastname")
        private String lname;
    }
    

    【讨论】:

    • JPA 如何自行映射不同命名的列和字段。就像列名是 created_date 和字段名是 createdDate 一样,没有使用 @Column 注释。
    • 如果你不使用@Column注解,那么列名就是Java字段名。
    • 我的意思是,我已经有一个包含一些列的表格。 JPA 如何在没有@Column 的情况下将字段映射到已经存在的具有不同名称的列。
    • 我相信在这种情况下,如果没有@Column,JPA 将无法进行映射。我建议删除您现有的表,而是让 JPA 为您设置它。然后,如果需要,使用 Java 应用程序之外的数据填充它。
    • 即使我也这么想,但是在我在 cmets 中给出的示例中,即使不使用 @Column 注释,我也能够成功地将列名 created_date 映射到字段名 createdDate。那是我不明白的。
    猜你喜欢
    • 2011-09-20
    • 2012-04-02
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2019-10-09
    • 1970-01-01
    • 2018-07-29
    • 1970-01-01
    相关资源
    最近更新 更多