2010-01-08 50 views
5

我需要在Grails中写入域类约束,它表示一个整数字段必须大于或等于另一个。关于字段之间的关系的Grails域类约束

当我写这样的代码:

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

static constraints = { 
    valueMin(min:1) 
    valueMax(min:valueMin) 
} 
} 

我收到提示:

Caused by: groovy.lang.MissingPropertyException: No such property: valueMin for class: MyDomain 

任何想法,请?

回答

8

http://grails.org/doc/latest/ref/Constraints/validator.html

这应该或多或少的工作(未测试)

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

static constraints = { 
    valueMin(min:1) 
    valueMax(validator:{ 
    value, reference -> 
    return value > reference.valueMin 
    }) 
} 
} 
+0

谢谢。这正是我已经找到的解决方案。 –

2

这不会工作,因为约束是一个静态代码块,它只能访问静态变量。

因此,如果您想要,您可以编写自己的自定义符合条件:查看此链接: http://grails.org/doc/latest/guide/single.html#7。验证