Grails - 如何在每次保存之前执行代码?

mro*_*rok 7 grails grails-orm grails-domain-class

save()在域类的每次调用之前,是否有一种好的/标准的方法来执行一些公共代码?

例如,我的域名

class Page {

    String url
    Boolean processed
    Date date
    Integer urlCrc 
}
Run Code Online (Sandbox Code Playgroud)

我的表单只有3个第一个字段,我想在urlCrc每次save()调用方法时计算.我不能只是覆盖保存方法,因为它被注入.

Kel*_*lly 17

您可以使用GORM事件 - 请参阅文档.因为默认情况下我会validate()在每次save()使用之前调用它.

class Page {
    //your defs here

    def beforeValidate() {
        this.urlCrc = yourComputationHere
    }
}
Run Code Online (Sandbox Code Playgroud)