CF9 EntityDelete:如何删除实体

时间:2010-01-29 06:53:07

标签: hibernate coldfusion coldfusion-9

如果我有一个实体数组,最简单的方法是删除整个实体数组(或者这样说,整个ORM表)?我有:

<cfset allUsers = EntityLoad("User", {}, false)/>

现在要删除所有实体,我会使用某种循环吗?如果是这样,我如何访问单个实体主键?我试过了:

<cfset userTemp = EntityLoad("User", allUsers[i].User.userID, true) /> 

但这不起作用......

3 个答案:

答案 0 :(得分:10)

EntityLoad将返回一个实体对象的数组,以便我们可以遍历它并使用entityDelete:

<cfloop array="#allUsers#" index="User">
   <cfset entityDelete( User )>
</cfloop>

与删除数据时一样要小心!我通常更喜欢软删除。

答案 1 :(得分:6)

如果你想使用数组表示法,你可以这样做。

<cfloop from="1" to="#arraylen(allUsers)#" index="i">
    <cfset entityDelete( allUsers[i] )>
</cfloop>

在不进行ColdFusion的情况下完成所有工作的另一种方法是执行查询。

<cfset ormexecutequery("DELETE FROM User",true)>

答案 2 :(得分:0)

如果您想要删除数组(在释放内存方面),以下内容应该有效:

<cfset allUsers = "">
<!--- or --->
<cfset StructDelete(variables, "allUsers")>

当然这只会删除一个引用。如果在其他地方引用了对象(allUsers或单个数组成员),这些引用将继续有效。