2012-06-04 101 views
0

外键我有父子关系级联在多对一associtaion

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

两个班,当我插入孩子一个新行,它更新而不是插入一个新的子类的现有行行并用外键映射新的id。

我觉得我在选择发电机类和级联选项时是错误的。请帮忙。

+0

现在你可以清除我的疑问? – deepika

+1

您的Java代码在哪里,假设这是一个Java问题?这是一个SQL问题呢? –

+0

您是先设置新行的ID吗?这可能会导致休眠不知道它的插入! –

回答

0

级联的映射应该在Parent类中,并且指向子类的方向。 在保存父项的同时,如果在子项列表中添加新的子对象以及较旧的子对象,它将被保存在带有自动递增ID的新行(如果已配置),请记住,如果要使用父节点保存子节点,并且所有子节点都有对象主键集,则它们将更新DB中的现有行,因为它是正确的工作行为。