に使用eclipselink
していJPA
ます。2 つのフィールドから作成された複合キーを持つエンティティがあります。以下は、埋め込み可能な主キー クラスのフィールド (メンバー) です。
@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ツールを使用しようとすると-> Generate Tables From Entity 、以下のようなエラーが発生しますが、これは説明していますが、取得できません。
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 を達成する別の方法はありますか? 助けてください。ありがとう