我正在尝试使用主键 - 外键关系映射表。
我有2张桌子。
部门与departmentId和departmentName。 departmentId是主键
有studentId,departmentId和studentName的学生。 studentId是主键,depatmentId是引用Department表的deparmetnId的外键。
@Entity
@Table(name="Department")
public class Department
{
@Id
@Column(name="departmentId")
private String departmentId;
@Column(name="departmentName")
private String departmentName;
/*getters and setters*/
}
@Entity
@Table(name="Student")
public class Student
{
@Id
@Column(name="studentId")
private String studentId;
@Column(name="studentName")
private String studentName;
@ManyToOne
@JoinColumn(name="departmentId", referencedColumnName="departmentId")
private Department department;
/*getters and setters*/
}
想象一下,我在Department表中有以下条目
departmentId departmentName
D1 ABC
D2 MNO
D3 XYZ
现在我尝试使用departmentId D4向Student表添加一个条目。根据引用完整性约束,不应允许这样做。 但是在我的情况下,此条目被接受,并且不会抛出任何错误消息,并且在department表中使用departmentId D4创建了一个新条目。
如何防止此表单发生? JPA是否自己执行参照完整性检查,或者我是否有自己的逻辑,其中我手动执行这些检查。
我正在使用EclipseLink和H2嵌入式数据库。