如何删除ColdFusion orm实体中的所有“一对多”项?

时间:2011-06-06 04:58:44

标签: orm coldfusion coldfusion-9

var items = job.getItems();
for (var item in items)
    job.removeItem(item);

CF / Java抛出

  

java.util.ConcurrentModificationException     在   java.util.AbstractList中$ Itr.checkForComodification(AbstractList.java:372)

在没有ConcurrentModificationException的情况下删除所有项目的最简洁方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:4)

在job.cfc中,必须实现一个清除项目的方法。

boolean function emptyItems()
{
    return arrayClear(variables.items);
}

然后......

job.emptyItems();

ColdFusion arrayClear()会在下面的Java中调用clear()

在ColdFusion中导致数组的唯一方法是按值传递。因此,在getItems()之后清除它不会对job.items执行任何操作。傻我。

答案 1 :(得分:3)

java List有一个(可选) clear()方法。

然后代码将成为:

 job.getItems().clear()

AFAICS coldfusion9使用hibernate作为ORM,hibernate在List抽象上实现了clear,甚至将它转换为数据库的单个DELETE语句。