2013-11-03 61 views
2

hibernate文檔中提到集合元素生命週期,您能否幫我理解元素的生命週期以及它在Hibernate中的維護方式?什麼是休眠中的集合元素生命週期

這是鏈接:

http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/collections.html#collections-elements

一個集合中的對象可能是根據「值」語義(其 週期完全依賴於集合持有者),或者它可能是被處理一個 引用另一個具有自己生命週期的實體。在後一種情況下,只有兩個對象之間的「鏈接」被認爲是該集合所持有的狀態 。

回答

1

我相信這個環節有足夠清晰的解釋

http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html

what is the lifecycle of the elements

案例1:

,要考慮與兩個實體CustomerOrder例子。 1個客戶可以有很多訂單。在這種情況下,Customer與訂單元素的所有者相同。

在JPA世界Customer實體類維護訂單元素的集合像

 @OneToMany(mappedBy = "customer", orphanRemoval = true) 
     private Collection<Order> orders; 

在上面的代碼中,你看到Customer類保持與訂單的集合的集合對象。在這個客戶行爲的所有者的訂單。爲什麼?因爲orphanRemoval = true,所以收藏life cycleCustomer維護。

當一個Customer實體對象被刪除時,它將刪除與客戶實例關聯的所有訂單。

爲了簡單起見,這種類型的關係在「UML」世界中被稱爲Composition。即在沒有父母的情況下孩子不能存在,即父母維護孩子lifecycle

案例2

在此集合可能是給自己的生命週期另一個實體的引用。請看http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/collections.html

相關問題