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| YYY

200000 | XXX| ううう

とにかく、exch_extra テーブルの val3 を、余分な Exch_extra エンティティを作成せずにエンティティ Exch にマップできますか?

だから私は持つことができます:

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 に答える