SchoolClass实体具有由schoolID,成绩和部分组成的复合键。 学生实体中的关键是userName和schoolID的组合。 我想在我的SchoolClass中添加两个学生对象的外键。我希望在所有映射中使用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;
......
}
答案 0 :(得分:0)
最好只删除复合键,而不是在所涉及的实体上使用自动生成的键。