在我的应用程序中,在一个事务中,我想删除一些域对象,并更新一些域对象:
Advertiser.withTransaction {
batch.each { record ->
if (recordsShouldBeDeleted(record))
record.delete()
else
record.save()
}
}
我知道其中一些是不同表的父键,所以我不应该删除它们。我现在想要那个,在循环中,如果记录不能被删除,什么都不应该发生,我会在以后处理它们。但就像现在一样,整个交易因为一条记录而失败。
有没有办法知道,在我尝试删除对象之前,如果我能够这样做,那么我会知道尽管我recordsShouldBeDeleted
返回 true,但不要尝试删除这些特定对象?(类似于validate()
检查约束的方法?)
或者对于这种情况有什么其他想法?
谢谢。