我有以下的情況來解決,但不能得到它的工作(嘗試和Hibernate的EclipseLink):JPA:在嵌入類的外鍵
Table_1:
Column_A is Primary Key
... some other columns do follow
。
Table_2:
Column_x is Primary Key and is Foreign Key to Table_1.Column_A
Column_y is Primary Key and is Foreign Key to Table_1.Column_A
Column_z is Primary Key
因此,表2具有複合主鍵。
我試圖去實現它的方式如下:
class Table_1 {
@Id int Column_A;
}
。
class Table_2 {
@EmbeddedId PK key;
@Embeddable class PK {
@OneToOne(targetEntity=Table_1.class)
@JoinColumn(name="Column_x",referencedColumnName="Column_A")
int Column_x;
@OneToOne(targetEntity=Table_1.class)
@JoinColumn(name="Column_y",referencedColumnName="Column_A")
int Column_y;
int Column_z;
public boolean equals(Object O) { ... }
public int hashCode() { ... }
}
}
但是,當我運行時,我從EclipseLink得到的提示在@Embeddable中,我可能只使用「基本」註釋。因此,我的問題是如何解決上述情況?
我沒有訪問類Table_1的源代碼,但必須按原樣使用它。另外,很可能會有更多的類/表建立到Table_1的外鍵。