Grails 更新前后
我们是否在更新*之前进行了更改(其中*是某个字段?) 还有一个问题: def beforeUpdate={log.info(“在beforeUpdate中”+this.status)} def afterUpdate={log.info(“在afterUpdate中”+this.status)} 这两者的地位相同。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
虽然对象的实际状态(此)从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)的问题。