在域对象约束中使用grails配置值

时间:2013-03-14 18:11:02

标签: unit-testing grails config domain-object

Grails 2.2.0

如何在Grails域对象约束中访问自定义配置变量。

我想有这样的事情:

    class User {

         def grailsApplication

         String name

         static constraints = {
             name size: grailsApplication.config.maxlength
         }  

    }

但它失败了“没有这样的属性:grailsApplication”。我试图通过遵循getting grails 2.0.0M1 config info in domain object, and static scope?中的建议来实现它,但却没有设法让任何组合起作用。

如何在域对象约束中访问配置?另外,如何在域约束的单元测试中处理这种情况?

1 个答案:

答案 0 :(得分:4)

您可以使用grails.util.Holders类来访问配置对象,如下所示:

Config.groovy

myMaxSize = 10

在您的域类中:

class User {
    String name

    static constraints = {
        name minSize: Holders.config.myMaxSize
    }
}