Hibernate双向列表关联

3

我相信有成千上万的例子可以证明这种关联,但我似乎找不到一个。

我有一个从父级到子级的一对多关系,以及一个从子级到父级的多对一关系:

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

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

我希望最后得到两个表格,其样式如下:

Parent
 - id        : bigint
 - name      : varchar

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

我理解的是:如果一个父级别被删除,那么它的子级别也应该被删除。如果这样,那么有人知道我需要在映射文件中添加什么内容吗?

提前感谢。

詹姆斯

1个回答

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>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接