Hibernate Двунаправленная Ассоциация Списка - PullRequest
3 голосов
/ 06 октября 2010

Я уверен, что должно быть тысячи примеров, демонстрирующих эту связь, но я не могу найти нигде.

У меня есть отношения один-много из Parent-Child и отношения один-много из 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;
}

Я ожидаю получить 2 таблицы, которые выглядят следующим образом:

Parent
 - id        : bigint
 - name      : varchar

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

Правильно ли я понял? Если так, то кто-нибудь знает, что мне нужно поместить в свой файл сопоставления, чтобы при удалении родителя были и дети.

Заранее спасибо.

Джеймс

1 Ответ

3 голосов
/ 06 октября 2010

В конце концов нашел решение, хотя не понимаю, зачем мне нужны 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...