字段之间关系的Grails域类约束

时间:2010-01-08 13:28:42

标签: grails constraints grails-validation

我需要在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

请问,好吗?

2 个答案:

答案 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。验证