在JPA

时间:2017-07-15 09:55:09

标签: jpa eclipselink h2 javax.persistence

我正在尝试使用主键 - 外键关系映射表。

我有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嵌入式数据库。

0 个答案:

没有答案