В моем заявлении, в одной транзакции есть некоторые объекты предметной области, которые я хочу удалить, а некоторые обновления:Grails - сказать, если объект может быть удален
Advertiser.withTransaction {
batch.each { record ->
if (recordsShouldBeDeleted(record))
record.delete()
else
record.save()
}
}
Я знаю, что некоторые из них являются родительские ключ к другой таблице, поэтому я не могу удалить их. Я хочу, чтобы на данный момент, в цикле, если запись не может быть удалена, ничего не должно произойти, и я позабочусь о них позже. Но, как и сейчас, вся транзакция терпит неудачу из-за одной записи.
Есть ли способ узнать, прежде чем я попытаюсь удалить объект, если бы я мог это сделать, то я бы знал, что не пытаюсь удалить этот определенный объект, хотя мой recordsShouldBeDeleted
возвращает true? (что-то вроде validate()
метод, который проверяет ограничения?)
Или есть какие-либо другие идеи для ситуации?
Спасибо.
Значит, это больше похоже на «recordCouldBeDeleted» (без поднятия каких-либо ограничений)? – lucke84
Возможно, но что я могу проверить там? – Dvora
Посмотрите на этот вопрос: [http://stackoverflow.com/questions/2294669/nhibernate-how-to-find-if-a-referenced-object-can-be-deleted] – lucke84