8

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

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;
    }
 }
4

1 回答 1

11

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

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

然后映射其他列,例如:

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

table2另一个表的名称在哪里。

于 2013-04-17T16:32:05.777 回答