Grails一行(缩写)属性约束定义可能吗?

时间:2014-07-30 15:41:59

标签: grails

如果我有一个具有许多属性的类,它们共享相同的属性约束,如下所示:

class myClass {

    String thisString
    String thatString
    String theOtherString

    static constraints = {
        thisString(nullable: true)
        thatString(nullable: true)
        theOtherString(nullable: true)
    }
}

是否有更容易的"一行"声明静态约束的方法?有类似的话:

static constraints = {
    thisString, thatString, theOtherString(nullable:true)
}

?谢谢。

1 个答案:

答案 0 :(得分:3)

Grails的名称为Global Constraints。这允许您在许多不同的GORM对象之间重用相同的约束。

的grails-app / CONF / Config.groovy的

grails.gorm.default.constraints = {
    mySharedConstraint(nullable:true, ...)
}

myClass.groovy

class myClass {

    String thisString
    String thatString
    String theOtherString

    static constraints = {
        thisString(shared: mySharedConstraint)
        thatString(shared: mySharedConstraint)
        theOtherString(shared: mySharedConstraint)
    }
}

如果你甚至不想那样......你可以通过做这样的事情来简单地对所有事情施加约束:

grails.gorm.default.constaints = {
    '*'(nullable:true)
}

开始将此应用于所有属性。

最后,我会查阅上面的链接。祝你好运!