2012-10-31 142 views
3

原因是,我想重複使用超過100列,只有4列將被更改,然後插入爲新記錄。我最後的手段是加載我想克隆的實體,然後用加載的實體手動設置新實體的屬性。如何克隆ORM實體並創建具有克隆屬性的新記錄?

我試過以下。

<!--- load entity I would like to clone --> 
<cfset mainObj= EntityLoad("myBean",{fkOtherId = 2},true)> 
<!--- create new entity to save --> 
<cfset newObj = EntityNew("myBean")> 
<!--- clone entity --> 
<cfset newObj = EntityMerge(mainObj)> 
<cfset newObj.setFirstName(‘John’)> 
<cfset newObj.setLastName(‘Smith’)> 
<cfset entitySave(newObj)> 

解決:使用

<cfset newObj = duplicate(mainObj)> 
<cfset newObj.setId(‘’)> 
<cfset newObj.setFirstName(‘John’)> 
<cfset newObj.setLastName(‘Smith’)> 
<cfset entitySave(newObj, true)> 

回答

2

entitySave有一個名爲forceInsert第二個參數。這應該在這裏工作。

<cfset entitySave(newObj, true)> 
+0

看起來像你指出我在正確的方向。不知道爲什麼它不起作用。我甚至使用了ormFlush()和ormReload()。還有其他建議嗎? – isurfbecause

+0

您可以查看由Hibernate/CF創建的SQL嗎? 如果你使用重複而不是entityMerge會發生什麼? –

+0

是重複作品! – isurfbecause