原因是,有超过100列我想重用,只有4列会被更改,然后作为新记录插入。我的最后一个选择是加载要克隆的实体,然后使用已加载的实体手动设置新实体的属性。

我尝试了以下方法。

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

最佳答案

实体保存有另一个名为forceInsert的参数。那应该在这里工作。

<cfset entitySave( newObj, true )>

09-30 12:24