Hibernate双向列表关联

时间:2010-10-06 16:30:33

标签: java hibernate

我确信必须有成千上万的例子证明这种关联,但我似乎无法在任何地方找到它。

我有来自亲子的一对多关系和来自Child-Parent的多对一关系:

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 个答案:

答案 0 :(得分: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>