Hibernate:映射另一个表列中的值

时间:2013-04-17 16:29:39

标签: java hibernate

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

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


Exch_ID | VAL1 | VAL2


100000 | AAA | BBB

200000 | CCC | DDD

现在我有另一张表格如下:

exch_extra


Exch_ID | VAL3 | VAL4


100000 | ZZZ | YYY

200000 | XXX | UUU

无论如何我可以将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;
    }
 }

1 个答案:

答案 0 :(得分:11)

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

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

然后映射其他列,如:

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

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