Để ánh xạ một lớp tới hai (hoặc nhiều) bảng riêng biệt, bạn cần sử dụng @ Bảng phụ chú thích:
@Table(name="ROOMS")
@SecondaryTable(name="TRAINERS", pkJoinColumns={
@PrimaryKeyJoinColumn(name="TRSC_OOC_UNIT_ID", referencedColumnName="OOC_UNIT_ID"),
@PrimaryKeyJoinColumn(name="TRSC_OOC_START_DT", referencedColumnName="OOC_START_DT"),
@PrimaryKeyJoinColumn(name="TRSC_OOC_START_TM", referencedColumnName="OOC_START_TM")
})
public class MyMergedEntity {
Sau đó, bạn sẽ cần chú thích từng thuộc tính riêng lẻ được ánh xạ tới TRAINERS
bảng có @Column(table="TRAINERS")
để chỉ định nó thuộc bảng nào. Nếu bạn đang sử dụng ánh xạ XML thay vào đó, tất cả những điều trên có thể được thực hiện thông qua tham gia
phần tử.
Tất cả những gì đã nói, có vẻ như đối với tôi rằng hai bảng của bạn khá khác nhau về bản chất và không nên được ánh xạ vào một lớp duy nhất (đặc biệt là vì bạn đã nói rằng bạn đã ánh xạ ROOMS
nơi khác). Có lẽ bạn nên ánh xạ Trainer của mình là ManyToOne thay vào đó là liên kết.