Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails 更新前后_Grails_Event Triggers - Fatal编程技术网

Grails 更新前后

Grails 更新前后,grails,event-triggers,Grails,Event Triggers,我们是否在更新*之前进行了更改(其中*是某个字段?) 还有一个问题: def beforeUpdate={log.info(“在beforeUpdate中”+this.status)} def afterUpdate={log.info(“在afterUpdate中”+this.status)} 这两者的地位相同。 虽然对象的实际状态(此)从x更新为y,但您可能想看看grails audit插件:并且属性更改时没有事件,但您可以添加一个显式setter,它可以执行以下操作: class MyDo

我们是否在更新*之前进行了更改(其中*是某个字段?)

还有一个问题:

def beforeUpdate={log.info(“在beforeUpdate中”+this.status)}

def afterUpdate={log.info(“在afterUpdate中”+this.status)}

这两者的地位相同。
虽然对象的实际状态(此)从x更新为y,但您可能想看看grails audit插件:并且属性更改时没有事件,但您可以添加一个显式setter,它可以执行以下操作:

class MyDomainClass {
   String status

   void setStatus(String status) {
      this.status = status
      // do something based on changed value
   }
}
您在更新之前的
和更新之后的
中看到了相同的值,因为这些回调是在Hibernate将更改的值保存到数据库时使用的。在Hibernate开始和完成更新的时间之间,值发生变化是不寻常的


如果您正在从数据库中查找原始值,可以使用

获取该值。谢谢您的提示!尽管“this.status=status”会引发无限递归,但要小心。我解决了在我的案例中调用super.setStatus(newStatus)的问题。