我需要在Grails中编写Domain类约束,它表示一个整数字段必须大于或等于另一个整数字段。
当我写这样的代码时:
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
请问,好吗?
答案 0 :(得分:10)
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
})
}
}
答案 1 :(得分:2)
这不会起作用,因为约束是一个静态的代码块,只能访问静态变量。
因此,如果您愿意,可以编写自己的自定义cosntraint:看一下这个链接: http://grails.org/doc/latest/guide/single.html#7。验证