Hibernate один со многими однонаправленными списками сопоставления

StackOverflow https://stackoverflow.com/questions/3924357

Вопрос

У меня есть one-to-many Отношения между родительским и ребенком Java объектами. Родительский объект использует java.util.List который хранит несколько дочерних объектов. Проблема, которую я испытываю, это при обновлении родительского объекта после того, как я добавил один или несколько дочерних объектов в List в родителе. Я использую saveOrUpdate Способ сохранить или обновить родитель. Он отлично работает, если я экономлю новый экземпляр родителя, но после сохранения его, я пытаюсь добавить дочерний объект в родитель List а затем попытаться позвонить saveOrUpdate На родительском объекте, но никаких записей дочерних объектов (ы) не сохранятся в базу данных. Я просто хотел бы несколько указателей. Примечание: Я не использую аннотации.
Фрагмент Parent.hbm.xml., это определяет однонаправленные однонаправленные отношения:

  <list name="children" cascade="all">
     <key column="parent_id"/>
     <index column="idx"/>
     <one-to-many class="Child"/>
  </list>
Это было полезно?

Решение

Я просто пытался воспроизвести этот пример, и это работало хорошо для меня.

Вот мои отображения:

<hibernate-mapping package="com.example.domain">
    <class name="com.example.domain.Parent" table="PARENT">

        <id name="id" column="parent_id" access="field">
            <generator class="increment" />
        </id>
        <property name="name" column="parent_name" access="field" />

        <list name="children" access="field" cascade="all">
            <key column="parent_id" not-null="true" />
            <index column="idx" />
            <one-to-many class="Child" />
        </list>
    </class>
</hibernate-mapping>

<hibernate-mapping package="com.example.domain">
    <class name="com.example.domain.Child" table="CHILD">
        <id name="id" column="child_id" access="field">
            <generator class="increment" />
        </id>
        <property name="name" column="child_name" access="field" />
    </class>
</hibernate-mapping>

я добавил not-null="true" к родительскому отображению.

Вы пытались установить show_sql В вашем Hibernate Config, чтобы увидеть сгенерированный SQL?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top