2010-01-08 12 views
5

Muszę napisać ograniczenie klasy domeny w Grails, które mówi, że jedno pole liczby całkowitej musi być większe lub równe od drugiego.Ograniczenia klasy domeny Grails dla relacji między polami

Kiedy napisać kod tak:

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

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

Dostaję błąd:

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

Każdy pomysł, proszę?

Odpowiedz

8

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

ta powinna bardziej lub mniej pracy (nie badane)

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

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

Dzięki. To jest właśnie rozwiązanie, które już znalazłem. –

2

To przyzwyczajenie się, ponieważ ograniczenia są statycznym blokiem kodu, który będzie miał dostęp tylko do zmiennych statycznych.

Jeśli chcesz, możesz napisać własną dostosowaną kombinację: spójrz na ten link: http://grails.org/doc/latest/guide/single.html#7. Walidacja