在JPA中创建外键ON UPDATE CASCADE(eclipselink)

时间:2012-08-11 04:54:08

标签: java database jpa jpa-2.0 eclipselink

我使用的是CascadeType.MERGE,但生成的sql在外键中不包含任何ON UPDATE。这是我的代码

@Entity
public class Address {
    @Id
    private int id;

    private String address;
}

@Entity
public class Employee {
    @Id
    private int empId;

    @OneToOne(cascade = CascadeType.MERGE)
    private Address address;
}

这里有什么遗漏

1 个答案:

答案 0 :(得分:1)

CascadeType.MERGE是一个JPA结构,它告诉提供者在Employee上调用merge时什么时候也调用引用的Address上的merge。

ON UPDATE CASCADE是一个数据库设置,似乎与CascadeType.merge没有任何关系。如果引用的主键发生更改,它会导致数据库更新外键。由于不允许更改JPA中的主键,因此此设置没有意义。如果您有一个可能需要更改的自然PK,建议您使用排序作为唯一标识符。