2014-11-21 101 views
0

我对JPA的Cascade注释感到困惑。 比如我有两个实体:级联和坚持

Company c 
Employee e 

在数据库Employee引用Company外键。

如果 - 不defininf瀑布 - 我做了以下内容:

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

两个companyemployee将持续到数据库中。

那么,什么是Company使用

@OneToMany(cascade = CascadeType.ALL, mappedBy = "company") 
private Collection<Employee> employeeCollection; 

注释的意义呢?

感谢, krisy

+1

OneToMany的“级联”的默认值为NO级联,因此不,如果您的JPA实现遵守规范,它将不会级联持久化收集元素。 – 2014-11-21 08:21:28

+0

谢谢你的回答! – krisy 2014-11-21 17:24:48

回答

1

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

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

我猜你的意思是级联属性(这是改写默认值),因为被指定@OneToMany使在这种情况下,关联双向的点。

+0

谢谢你的回答! – krisy 2014-11-21 17:25:06