更改beforeInsert和beforeUpdate中的验证

时间:2012-06-19 08:58:34

标签: grails groovy

我有一个Domain类

class Store{
    String name
    Store hierarchy
    Date dateCreated
    Date lastUpdated
    static hasMany=[storeRestrictions:StoreRestrictions]
    boolean isBillable
    boolean isConsignment
    boolean isMassUploadPossible

    static constraints = {
        name(nullable:false,blank:false,maxSize:50,unique:true)
        hierarchy(nullable:true,blank:true)
        dateCreated()
        lastUpdated()
        isBillable()
        isMassUploadPossible()
        storeRestrictions(nullable:false)
    }
}

有没有办法更改beforeInsertbeforeUpdate中的验证,以便isConsignment为真,那么storeRestrictions可以成为nullable:true

2 个答案:

答案 0 :(得分:0)

我认为custom validators对您的必需品是正确的。您可以使用自定义验证程序替换存储上的nullable:true约束,该验证程序检查是寄售值

答案 1 :(得分:0)

请改为:

static constraints = {
    ...
    storeRestrictions(validator: {field, inst -> 
                                    if( false == isConsignment) 
                                        return null != inst.storeRestrictions
                     )
}

Grails Validator

了解详情