SchoolClass エンティティには、schoolID、学年、およびセクションで構成される複合キーがあります。学生エンティティのキーは、userName と schoolID の複合です。SchoolClass に学生オブジェクトの 2 つの外部キーを追加しようとしています。すべてのマッピングで SchoolClass テーブルの同じ列 schoolID を使用したいのですが、これが正しい方法であるかどうか疑問に思っていますか?
@Entity
public class SchoolClass {
@Column(unique=true, nullable=false)
@EmbeddedId
private SchoolClassPK key;
@ManyToOne(optional = true)
@JoinColumns({
@JoinColumn(name="classRep1", referencedColumnName="userName", nullable = true),
@JoinColumn(name="schoolID", referencedColumnName="schoolID", nullable = true),
})
private Student classRep1;
@ManyToOne(optional = true)
@JoinColumns({
@JoinColumn(name="classRep2", referencedColumnName="userName", nullable = true),
@JoinColumn(name="schoolID", referencedColumnName="schoolID", nullable = true),
})
private Student classRep2;
......
}