2014-11-21 134 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