2010-01-08 52 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。驗證