Hibernate один со многими однонаправленными списками сопоставления
-
29-09-2019 - |
Вопрос
У меня есть 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?