Grails - 更改beforeValidate()中的域对象不会保留

时间:2012-07-03 01:15:26

标签: hibernate grails groovy gorm

我有一个域对象,我正在更改beforeValidate()事件内部的属性值。如果此属性是对象上唯一更改的属性,则似乎没有任何内容持久保存到数据库中。我查看了调试器,看到对象已更改。但是当我调用save(flush:true)时,新值不会持久存在。

我可能做错了什么?

如果在beforeValidate()事件之外更改了另一个属性,它确实有效。

环境:Grails 2.0.1,全局启用failOnError

修改

我手动在我的对象上调用validate(),我看到beforeValidate()被调用了。在我致电save(flush: true)之前,我记录了以下内容:

log.debug("isDirty() = ${myObj.isDirty()}")
log.debug("changedVal = ${myObj.val}")
log.debug("dirtyPropertyNames = ${myObj.dirtyPropertyNames}")
打印出来的

isDirty() = false
changedVal = my new value
dirtyPropertyNames = []

所以似乎hibernate没有认识到对象是脏的。如何让它看到对象脏?

0 个答案:

没有答案