我正在eclipselink
使用JPA
. 我有一个实体,它有一个由两个字段组成的复合键。以下是我的可嵌入主键类的字段(成员)。
@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 tools--> 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?请帮忙。谢谢