2013-04-17 15 views
6

ich einen Domain-Einheit haben wie folgt aussieht:Hibernate: Abbilden einen Wert aus einer anderen Tabelle Spalte

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

und Tabelle:

Exch


Exch_ID | VAL1 | VAL2


100000 | AAA | BBB

200000 | CCC | DDD

jetzt habe ich eine andere Tabelle, die wie folgt aussieht:

exch_extra


Exch_ID | VAL3 | VAL4


100000 | ZZZ | YYY

200000 | XXX | UUU

Gibt es sowieso ich kann val3 in exch_extra Tabelle zu Entität Exch zuordnen, ohne eine zusätzliche Exch_extra Entität zu erstellen?

, so kann ich haben:

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

Antwort

10

Hibernate hat eine @SecondaryTable Anmerkung, die Sie auf eine Entität Karte mehrere Tabelle hilft.

Fügen Sie einfach sekundäre Annotation der Tabelle hinzu, Join-Spalte (in sekundäre Tabelle) Annotation.

Karte Dann anderen Spalten wie:

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

wo table2 ist der Name der anderen Tabelle.

+0

danke! Sobald ich SecondaryTable zur Entity hinzufüge, kann ich den Wert aus der That-Tabelle abbilden. – user1409920

Verwandte Themen