我有一个名为OurCompany的域对象,我希望能够故意插入一行大多数为空的行。但是,当用户填写表格时,我想对其进行验证,但不允许空白。

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();
}

如何告诉grails我希望数据库接受空值,但是在验证时不允许空值或空值?

最佳答案

那就是Command Objects的目的

关于validation - Grails:约束:数据库允许为空,但表格不能为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13867831/

10-10 04:36