2011-08-03 154 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

我相信你必須手動添加一個子對象到集合。因爲在休眠狀態下,通常的做法是每個實體都與表中的一行有關。因此,要添加新行,您需要向集合中添加新的子項。