【问题标题】:Hibernate: mapping a value from another table columnHibernate:映射来自另一个表列的值
【发布时间】:2013-04-10 12:44:01
【问题描述】:

我有一个域实体如下所示:

class Exch{
    private int id;
    private String val1;
    private String val2;

    @Column(name = "val1")        
    public String getVal1(){
        return val1;  
    }
    @Column(name = "val2")
    public String getVal2(){
        return val2;
    }
    @Column(name = "id")
    public int id(){
        return id;
    }
}

和表:

交流


Exch_ID| VAL1 | VAL2


100000 | AAA | BBB

200000 | CCC | DDD

现在我有另一个表格,如下所示:

exch_extra


Exch_ID| VAL3 | VAL4


100000 | ZZZ|年年

200000 | XXX|呜呜呜

我是否可以将 exch_extra 表中的 val3 映射到 Entity Exch 而无需创建额外的 Exch_extra 实体?

所以我可以拥有:

class Exch{
    private int id;
    private String val1;
    private String val2;
    private String val3;


    @Column(name = "val1")        
    public String getVal1(){
        return val1;  
    }
    @Column(name = "val2")
    public String getVal2(){
        return val2;
    }
    @ do something here so i can have val3 from exch_extra table
    public String val3(){
        return val3
    }

    @Column(name = "id")
    public int id(){
        return id;
    }
 }

【问题讨论】:

    标签: java hibernate


    【解决方案1】:

    Hibernate 有一个@SecondaryTable 注释,可以帮助您将多个表映射到一个实体。

    只需添加辅助表注释,连接列(在辅助表中)注释。

    然后映射其他列,例如:

    @Column(name="val3", table="table2")
    private int val3;
    

    其中table2 是另一个表的名称。

    【讨论】:

    • 谢谢!一旦我将 SecondaryTable 添加到实体,我就可以映射该表中的值。
    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多