grails中的域类自动验证

时间:2013-06-10 07:27:34

标签: gorm grails-2.0 grails-domain-class

我从数据库中获取结果列表,但列表没有验证约束,直到我调用" validate()"每个对象的方法。

    def temp = ConfigInfo.where { projectId == project }.findAll()

    //at this stage domain class is not validated
    temp.each {         
        println "validate" + it.validate()
        println "has error" +  it.hasErrors()
    } 
          //in the above code block validate() is called, I don't want to do this. 

//是否可以自动配置它并获得经过验证的对象。

我不想调用验证方法。 是否有任何方式或配置grails,以便域类自动验证。

请帮助我。

2 个答案:

答案 0 :(得分:0)

Grails域类对象在保存之前得到验证。

在域模型中使用以下内容来设置验证规则:

static constraints = {
   // whatever you want to validate
}

每当您保存对象时,它将通过您设置的约束进行验证。当对象在数据库中持久化时,它总是被验证。

答案 1 :(得分:0)

您需要做的就是在约束闭包中定义所有验证。 e.g。

    static constraints = {
                id maxLength: 5
                //etc...
}

在保存对象时你只需要检查对象是否有效!它将返回true / false。 看这个: click here