我们有 beforeUpdateOf* (其中 * 是某个字段吗?)
还有一个问题:
def beforeUpdate= { log.info("in beforeUpdate " +this.status) }
def afterUpdate = { log.info("in afterUpdate" +this.status) }
这两者都给出了相同的状态。虽然 object(this) 的实际状态从 x 更新为 y
我们有 beforeUpdateOf* (其中 * 是某个字段吗?)
还有一个问题:
def beforeUpdate= { log.info("in beforeUpdate " +this.status) }
def afterUpdate = { log.info("in afterUpdate" +this.status) }
这两者都给出了相同的状态。虽然 object(this) 的实际状态从 x 更新为 y
更改属性时没有事件,但是您可以添加执行某些操作的显式设置器:
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