我有两个有父母和子女关系的课程
<class name="parent">
<id name="id">
<generator class="assgned"/>
</id>
<property name="currency"/>
<property name="description" length="400">
</class>
<class name="child">
<id name="id">
<generator class="native"/>
</id>
<property name="someprop1"/>
<property name="someprop2">
<many-to-one class="Parent" column="parent_field" name="parent" cascade="save-
update" />
</class>
当我在child中插入一个新行时,它会更新子类中的现有行,而不是插入新行并使用外键映射新id。
我认为在选择生成器类和级联选项时我错了。请帮忙。
答案 0 :(得分:0)
cascade的映射应该在Parent类中,并指向子类的方向。 如果您在子列表中添加一个新的子对象以及旧的子对象,则保存您的父对象..如果已配置,它将保存在具有自动递增ID的新行中,请记住,如果您将父级保存,并且所有孩子都在那里在对象中设置主键,它们将更新DB中的现有行,因为它是正确的工作行为。