2010-10-06 144 views
3

我敢肯定,必須有成千上萬的例子來證明這種關聯,但我似乎無法在任何地方找到它。休眠雙向列表協會

我從父子一個一對多的關係和父子一個多一個關係:

class Parent { 
    private Long id; 
    private String name; 
    private List<Child> children; 
} 

class Child { 
    private Long id; 
    private String name; 
    private Parent parent; 
} 

我期待有2個表,看起來如下落得:

Parent 
- id  : bigint 
- name  : varchar 

Child 
- id  : bigint 
- parent_id : bigint 
- sequence : bigint 
- name  : varchar 

我有正確的想法嗎?如果有的話,是否有人知道我需要放置在我的映射文件中,以便在刪除父項時,它也是子項。

在此先感謝。

詹姆斯

回答

3

找到最終解決方案,雖然我不明白爲什麼我需要insert="false"update="false"

<hibernate-mapping> 
    <class name="foo.Parent" table="Parent"> 
     <id name="id" type="int" column="id"> 
      <generator class="native" /> 
     </id> 
     <property name="name" type="java.lang.String" column="name" length="50" /> 
     <list name="children" cascade="all"> 
      <key column="parent_id" /> 
      <index column="sequence" /> 
      <one-to-many class="foo.Child" /> 
     </list> 
    </class> 

    <class name="foo.Child" table="Child"> 
     <id name="id" type="int" column="id"> 
      <generator class="native" /> 
     </id> 
     <property name="name" type="java.lang.String" column="name" length="50" /> 
     <many-to-one name="parent" class="foo.Parent" column="parent_id" insert="false" update="false" /> 
    </class> 
</hibernate-mapping> 
+0

檢查[雙向one-to-許多與索引的集合(HTTP: //community.jboss.org/wiki/Bidirectionalone-to-manywithanindexedcollection)。 – 2010-10-06 17:13:10

+0

有人可以解釋爲什麼這個工程? – Kimble 2012-04-30 09:53:02