尽管约束是 验证 章节的内容, 但是在此涉及到约束也是很重要的,因为一些约束会影响到数据库的生成。
Grails通过使用领域类的约束来影响数据库表字段(领域类所对于的属性)的生成,还是可行的。
考虑下面的例子,假如我们有一个域模型如下的属性.String name
String description
默认情况下,在MySql数据库中,Grails将会定义这个列为…column name | data type
description | varchar(255)
但是,在业务规则中,要求这个领域类的description属性能够容纳1000个字符,在这种情况下,如果我们是使用SQL脚本,那么我们定义的这个列可能是:column name | data type
description | TEXT
现在我们又想要在基于应用程序的进行验证,要求在持久化任何记录之前,确保不能超过1000个字符。
在Grails中,我们可以通过constraints. 来完成,我们将在领域类中新增如下的约束声明.static constraints = {
description(maxSize:1000)
}
这个约束条件将会提供我们所需的基于应用程序的验证并且也将生成上述示例所示的数据库信息。