2011-03-22 197 views
0

我需要Hibernate中複合值的Collection。例如:休眠 - 複合值集合

class Parent { 
    Set<Child> children; 
} 

class Child { 
    String property; 
    String anotherProperty; 
    MyOtherClass oneToOneClass; 
} 

關鍵要求是此集合中的元素是值對象。當我saveOrUpdateParent它也救了它的孩子。

更重要的是,當我基於同一組創建另一個Parentchildren時,這些孩子需要單獨堅持。這就是爲什麼經常one-to-many不適合我。

有沒有一種乾淨的方式,我可以用Hibernate做到這一點?像這裏描述的值集合:http://docs.jboss.org/hibernate/core/3.3/reference/en/html/collections.html - 但是對於具體的複合類。

我更喜歡XML解決方案而不是註解。

+0

這些孩子總是屬於同一類型嗎? – 2011-03-22 15:08:39

+0

@Stefan是的,兩者都是具體的類。 – 2011-03-22 15:09:23

回答

0

通常你這個映射爲組合元素

<set ... > 
    <key .../> 
    <composite-element class="Child" ...> 
    <property name="property"/> 
    <property name="anotherProperty"/> 
    <nested-composite-element name="oneToOneClass"> 
     <property name="..."/> 
    </nested-composite-element> 
</set> 

Component Mapping