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

Shy*_*eni 0 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])
}
Run Code Online (Sandbox Code Playgroud)

这是打印

stock instance has errors
org.springframework.validation.BeanPropertyBindingResult: 0 errors
Run Code Online (Sandbox Code Playgroud)

那么错误在哪里呢?

抱歉,没有正确观看数据,这是正确的持续存在.

Bur*_*ith 6

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

!stockInstance.validate() && stockInstance.save(flush: true)因为save()呼叫validate()变得如此,所以永远不会是真的!stockInstance.validate() && stockInstance.validate()

save()由于validate()调用返回后调用没有发生true(因此第一次检查为false),因此它不会持久存在.

因为save()电话validate()我不知道为什么你有额外的电话.