我有一个名为OurCompany的域对象,我希望能够故意插入一行大多数为空的行。当用户填写表单时,我想验证它并且不允许空白。Grails:约束:数据库允许为空,但表单可能不为空
class OurCompany {
static constraints = {
enterpriseName blank:false, nullable:true
}
String enterpriseName
static belongsTo = [measurement:Measurement]
}
当我在数据库中创建空行时,我关闭了验证并且工作正常。
ourCompany = new OurCompany();
measurement.addToOurCompany(ourCompany).save(validate:false);
后来,当我更新该行时,即使存在空值或空值,也会忽略验证并保存记录。
def ourCompany = loadOrCreateOurCompany();
def industrySectors = loadIndustrySectors();
bindData (ourCompany, params)
ourCompany.validate()
if (ourCompany.hasErrors()) {
ourCompany.errors.allErrors.each {
println(it)
}
} else {
ourCompany.save();
}
我如何告诉我想要DATABASE接受空的Grails,但验证时,不允许为空或空格?
谢谢Greg。我最终实现了这一点,但我希望有一个更好的方法。发现它是一个真正的时间浪费。 – Spider
我不同意这个解决方案很丑并且浪费时间。我不确定除了在域级别允许某种条件约束之外它怎么会更好。这可能是因为你错误地使用了命令对象,所以感觉很痛苦。 – Gregg
也许吧。当我完成我的实施时,我会在这里发布。 – Spider