有一种方法可以暂时禁用特定域类的beforeInsert事件吗?我需要执行以下步骤:
saveAs例程在特定对象中执行深度克隆,并使用相同的数据创建一个新对象。查看此答案以了解克隆:How can I duplicate a domain object in Grails?
禁用beforeInsert的原因:由于已克隆对象,因此在执行saveAs例程时无需执行beforeInsert内部的代码。
Grails版本:2.5.0
更新
我忘了提到我要避免更改域类以实现此行为。
最佳答案
您可以在域类中创建一个 transient bool(boolean) 字段,并基于该字段的值可以运行beforeInsert代码,例如:
class Person{
Boolean runBeforeInsert = true
static transients = ['runBeforeInsert']
def beforeInsert(){
if(runBeforeInsert){
SOME CODE .....
}
}
}
这可能不是最佳解决方案,但这是解决方案之一。
关于grails - GORM-暂时禁用beforeInsert事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33150455/