在下面的代码中,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
那么错误还可能在哪里。
很抱歉没有正确观看数据,这是正确的。
答案 0 :(得分:6)
您有!stockInstance.validate()
但它应该是stockInstance.validate()
。
!stockInstance.validate() && stockInstance.save(flush: true)
永远不会成为现实,因为save()
调用validate()
所以它变为!stockInstance.validate() && stockInstance.validate()
由于save()
调用返回validate()
后true
调用未发生(因此第一次检查为假),因此不会持续存在。
由于save()
拨打validate()
,我不知道为什么你会有额外的电话。