我对JPA的Cascade注释感到有些困惑。 例如,我有两个实体:
Company c
Employee e
在数据库Employee
中通过外键引用Company
。
如果 - 没有定义级联 - 我会执行以下操作:
e.setCompany(c);
c.getEmployeeCollection().add(e);
em.persist(c);
company
和employee
都将保留在数据库中。
那么使用
是什么意思@OneToMany(cascade = CascadeType.ALL, mappedBy = "company")
private Collection<Employee> employeeCollection;
<{1}}中的注释?
谢谢, krisy
答案 0 :(得分:1)
JPA默认情况下不会级联任何操作。 Hibernate实现遵循关于级联的规范,因此默认情况下它没有级联操作。你没有提到你正在使用的JPA实现。
@OneToMany(cascade = CascadeType.ALL, mappedBy = "company")
我猜你的意思是 cascade 属性(它要覆盖默认值),因为@OneToMany
被指定为在这种情况下使关联双向。