2

谁能告诉我如何inList在 Grails 控制器中声明约束?

假设我有这个课程:

class A {
    List hello
}

如何在控制器inList中为 from 添加约束hello List

4

2 回答 2

2

定义一个约束,其中List属性的值针对列表列表进行验证?听起来怪怪的。但你可以做到。有了这个类:

class A {
    List hello
    static constraint = {
        hello inList:[['abc','def','ghi'],[1,2,3],['a','b']]
    }
}

您可以在控制器中执行此操作:

def instance1 = new A(hello:['abc','def','ghi']).save()    //valid
def instance2 = new A(hello:[1,2,3]).save()                //valid
def instance3 = new A(hello:['a','b']).save()              //valid
def instance4 = new A(hello:['a','b','c']).save()    //invalid
def instance5 = new A(hello:[1,2]).save()            //invalid

但是,如果A是一个域类,其实例保存在传统数据库中,则该hello属性将被删除,因此您需要使用

static hasMany = [hello: SomeClass]

反而。

于 2013-01-11T06:53:59.753 回答
0

您可以将自定义验证器写入您的字段,以检查数据是否在列表中。您将不得不手动实施列表检查。你可以在这里找到官方文档。有一些stackoverflow条目可以帮助你喜欢

Grails:基于字段先前值的自定义验证器

于 2013-01-11T07:41:02.267 回答