Grails-为什么setDateCreated被多次调用?

Grails-为什么setDateCreated被多次调用?,grails,timestamp,gorm,Grails,Timestamp,Gorm,我有一个非常简单的Grails实体: package timestamp.fail class Post { String title String body Date dateCreated static constraints = { title(blank: false) body(blank: false) } void setDateCreated(Date d){ dateCreated = d if(dateCreated){

我有一个非常简单的Grails实体:

package timestamp.fail

class Post {

String title
String body
Date dateCreated

static constraints = {
    title(blank: false)
    body(blank: false)
}

void setDateCreated(Date d){
    dateCreated = d

    if(dateCreated){
        System.out.println(" dateCreated OK!!! ")
    }
    else{
        System.out.println(" dateCreated null =/ ")
    }
}
}
我对它进行了一些调试,注意到在保存实例时多次调用setDateCreated。我注意到的一件奇怪的事情是,当从BootStrap.groovy保存实例时,调用了创建的第一个setDateCreated,“d”参数为null,尽管接下来的两次调用都是正确的

为什么叫这么多次?它背后是否有某种生命周期?我应该依靠哪个执行来对创建日期进行逻辑处理?我不应该依靠这个日期做其他事情吗

谢谢

这是因为grails的特性。

上的注释可能有助于理解某些方面。