2

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>
4

1 回答 1

2

我只是试图重现这个例子,它对我来说工作正常。

这是我的映射:

<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?

于 2010-10-14T00:13:25.770 回答