我有一个域类,需要在updateBofore
方法上更新同一域的其他实例的某些值。但是它将无限运行。有什么办法只能更新一次?
Class ABC {
String name
String ref
def beforeUpdate() {
List abcs = findAllWhere(ref: ref)
abcs.each {
it.name = name
it.save(flush: true)
}
}
}
最佳答案
使用插入前gorm事件,而不迭代所有列表并调用save。
class ABC {
//your defs here
def beforeInsert()
List abcs = findAllWhere(ref: ref)
if(abcs){
this.name = abcs.first().name
}
}
}
您必须在域类之外调用save
ABC a = new ABC()
a.save()
而beforeInsert可以解决问题
关于grails - 在beforeUpdate方法中无限调用该方法来更新域实例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34327543/