2010-10-06 70 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