2010-01-08 9 views
5

Necesito escribir la restricción de clase de dominio en Grails que dice que un campo entero debe ser mayor o igual que el otro.Grails restricciones de clase de dominio para la relación entre los campos

Cuando escribo el código como el siguiente:

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

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

que estoy recibiendo de error:

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

Cualquier idea, por favor?

Respuesta

8

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

Esto debe más o menos trabajo (no probado)

class MyDomain { 

String title 
int valueMin = 1 
int valueMax = 1 

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

Gracias. Esta es exactamente la solución que ya encontré. –

2

Esto no funciona, porque las restricciones son un bloque de código estático que solo tendrá acceso a las variables estáticas.

Por lo tanto, puede escribir su propio cosntraint personalizado si lo desea: consulte este enlace: http://grails.org/doc/latest/guide/single.html#7. Validación

Cuestiones relacionadas