class Site {
    static hasMany = [instances: Instance]
}
class Instance {
    static belongsTo = [Site]
}
and have to perform a task of wiping out a collection of Instances in a Site, including the deletion of all records of Instance, this would be the right way to do it:
site.instances*.delete()
site.instances.clear()
site.save(flush: true)This may be a bit non-intuitive for such a trivial task, however, if you omit the first delete() call, you'll end up with orphan Instance records. If you omit the clear() call, you'll get this error:
deleted object would be re-saved by cascade (remove deleted object from associations): [Instance]
And of course, site.removeFromInstances() does not take a Collection, and if you loop through it and delete each individual Instance, you'll get a 
ConcurrentModificationException.   
 
 Posts
Posts
 
 
No comments:
Post a Comment