我在父对象和子Java对象之间有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>
答案 0 :(得分: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"
添加到父映射。
您是否尝试在hibernate配置中设置show_sql
以查看生成的SQL?