2011-08-03 149 views
0

我有一个类,我坚持Hibernate。这是如下存储在袋子内,并使用一个序列生成器生成的ID,:插入而不是更新与休眠

<class name="Parent"> 
    <id name="id" /> 
    <bag name="children" access="field"> 
    <key column="parent_id" not-null="true" /> 
    <one-to-many class="Child" /> 
    </bag> 
</class> 

<class name="Child"> 
    <id name="id"> 
    <generator class="sequence"> 
     <param name="sequence">child_seq</param> 
    </generator> 
    </id> 

    <many-to-one name="status" not-null="true" cascade="none" /> 
</class> 

当儿童状态属性被修改,新的子记录应该被插入,而不是旧的更新。但是,Hibernate更新。有没有什么办法可以告诉Hibernate它应该插入,还是我必须在包之外自己管理它?

+1

听起来像你使用hibernate的方式令人困惑。你希望'Parent.children.size()'与表中的行数不同?为什么不只是将新的Child实例添加到包中? –

回答

0

我相信你必须手动添加一个子对象到集合。因为在休眠状态下,通常的做法是每个实体都与表中的一行有关。因此,要添加新行,您需要向集合中添加新的子项。