JPA
にeclipselink
を使用しています。私は複合キーを2つのフィールドから作成したエンティティを持っています。以下は私の埋め込み可能プライマリキークラスのフィールド(メンバ)です。Embeddableクラス内での外部キーマッピング
@Embeddable
public class LeavePK {
@ManyToOne(optional = false)
@JoinColumn(name = "staffId", nullable = false)
private Staff staff;
@Temporal(TemporalType.TIMESTAMP)
private Calendar date;
//setters and getters
}
私のエンティティはスタッフに関する離脱データを保持する予定なので、私はスタッフオブジェクトを結合し、複合キーを生成するために日付を残そうとしています。私のロジックとは別に、埋め込み可能なクラス内に外部キーマッピングを持たせることはできません。 JPAツール - >エンティティからテーブルを生成を使用しようとすると、以下のようにエラーが表示されますが、私はそれを取得していません。
org.eclipse.persistence.exceptions.ValidationException
Exception Description: The mapping [staff] from the embedded ID class [class rs.stapp.entity.LeavePK] is an invalid mapping for this class. An embeddable class that is used with an embedded ID specification (attribute [leavePK] from the source [class rs.stapp.entity.Leave]) can only contain basic mappings. Either remove the non basic mapping or change the embedded ID specification on the source to be embedded.
つまり、私は外部キーであるキー(複合キーから)を持つことはできません。このERMを達成する別の方法はありますか?助けてください。ありがとう