Как удалить все элементы «один ко многим» в объекте ColdFusion orm? - PullRequest
1 голос
/ 06 июня 2011
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 ]

4 голосов
/ 06 июня 2011

Внутри файла job.cfc должен быть реализован метод, который очищает элементы.

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

А затем ...

job.emptyItems();

В ColdFusion arrayClear() будет вызываться clear() вJava ниже.

Это единственный способ, потому что массив в ColdFusion передан по значению .Следовательно, очистка после getItems () ничего не делает для job.items.Глупый я.

3 голосов
/ 06 июня 2011

В Java-списке есть (необязательно) clear () метод.

Код станет:

 job.getItems().clear()

AFAICS coldfusion9 использует hibernate в качестве ORM, а hibernate реализует clear в абстракции List и даже преобразует его в один оператор DELETE для базы данных.

...