2013-04-17 28 views
6

Tôi có một thực thể miền trông như thế này:Hibernate: lập bản đồ một giá trị từ một cột bảng

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

và bảng:

Exch


Exch_ID | VAL1 | VAL2


100000 | AAA | BBB

200000 | CCC | DDD

bây giờ tôi có một bảng trông giống như:

exch_extra


Exch_ID | VAL3 | VAL4


100000 | ZZZ | YYY

200000 | XXX | UUU

là có anyway tôi có thể bản đồ val3 trong bảng exch_extra để thực thể Exch mà không tạo ra một thực thể Exch_extra thêm?

vì vậy tôi có thể có:

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

Trả lời

10

Hibernate có @SecondaryTable chú thích, giúp bạn ánh xạ nhiều bảng để một thực thể.

Chỉ cần thêm chú thích bảng phụ, chú thích nối cột (trong bảng phụ).

Sau đó, bản đồ cột khác như:

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

nơi table2 là tên của bảng khác.

+0

cảm ơn! một khi tôi thêm SecondaryTable vào thực thể tôi có thể ánh xạ giá trị từ bảng đó. – user1409920

Các vấn đề liên quan