级联并坚持

时间:2014-11-21 07:43:34

标签: jpa

我对JPA的Cascade注释感到有些困惑。 例如,我有两个实体:

Company c
Employee e

在数据库Employee中通过外键引用Company

如果 - 没有定义级联 - 我会执行以下操作:

e.setCompany(c);
c.getEmployeeCollection().add(e);
em.persist(c);

companyemployee都将保留在数据库中。

那么使用

是什么意思
@OneToMany(cascade = CascadeType.ALL, mappedBy = "company")
private Collection<Employee> employeeCollection;
<{1}}中的

注释?

谢谢, krisy

1 个答案:

答案 0 :(得分:1)

JPA默认情况下不会级联任何操作。 Hibernate实现遵循关于级联的规范,因此默认情况下它没有级联操作。你没有提到你正在使用的JPA实现。

@OneToMany(cascade = CascadeType.ALL, mappedBy = "company")

我猜你的意思是 cascade 属性(它要覆盖默认值),因为@OneToMany被指定为在这种情况下使关联双向。