我有 one-to-many 父母和儿童爪哇对象之间的关系。父对象使用 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 在您的冬眠配置中以查看生成的SQL?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top