Grails域类validate()返回false但没有错误

时间:2011-12-02 04:03:14

标签: grails

在下面的代码中,validate()返回false但我没有看到任何错误。由于验证方法失败,数据不会持久存储到数据库中。

if (!stockInstance.validate() && stockInstance.save(flush: true))
 //redirect(action: "show", id: saleInstance.id)
} else {
 println 'stock instance has errors'
 stockInstance.errors.each {
 println it
}
render(view: "edit", model: [saleInstance: saleInstance])
}

这是打印

stock instance has errors
org.springframework.validation.BeanPropertyBindingResult: 0 errors

那么错误还可能在哪里。

很抱歉没有正确观看数据,这是正确的。

1 个答案:

答案 0 :(得分:6)

您有!stockInstance.validate()但它应该是stockInstance.validate()

!stockInstance.validate() && stockInstance.save(flush: true)永远不会成为现实,因为save()调用validate()所以它变为!stockInstance.validate() && stockInstance.validate()

由于save()调用返回validate()true调用未发生(因此第一次检查为假),因此不会持续存在。

由于save()拨打validate(),我不知道为什么你会有额外的电话。