我们有beforeUpdateOf *(其中*是某些字段?)
和另一个问题:
def beforeUpdate = {log.info(“in beforeUpdate”+ this.status)}
def afterUpdate = {log.info(“afterUpdate”+ this.status)}
这两者都给出相同的状态。 虽然对象的实际状态(this)从x更新为y
答案 0 :(得分:3)
更改属性时没有事件,但您可以添加一个显式的setter来执行某些操作:
class MyDomainClass {
String status
void setStatus(String status) {
this.status = status
// do something based on changed value
}
}
您在beforeUpdate
和afterUpdate
中看到相同的值,因为这些回调是在Hibernate将更改的值保存到数据库时。在Hibernate启动和完成更新的时间之间更改值是不常见的。
如果您正在寻找数据库中的原始值,可以使用http://grails.org/doc/latest/ref/Domain%20Classes/getPersistentValue.html
答案 1 :(得分:0)
您可能需要查看Grails审核插件:Audit Logging和Audit Trail