次の状況を解決する必要がありますが、機能しませんでした (Hibernate と EclipseLink を試しました)。
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 への外部キーを確立するクラス/テーブルがさらに存在する可能性が非常に高くなります。