validator validate domain custom validation grails groovy gorm domain-object

validation - validate - Grails Domain: ¿Cómo acceder a los datos del dominio padre?



grails validate() (2)

Tengo una estructura de dominio hijo principal y quiero acceder a los datos del dominio principal en el dominio secundario para el validador. Por ejemplo, en el siguiente ejemplo de código, child1 tiene una variable ''name'' y con fines de validación necesito datos child2.

¿Cómo puedo lograr esta situación?

Tengo una estructura de dominio como esta:

class Parent{ Child child1 Child child2 static mapping = { child1 lazy:false child2 lazy:false } } class Child{ String name // some other variables static belongsTo = [parent:Parent] static constraints = { name(nullable:true,validator:{val, obj -> if(obj.parent){ return true } return false }) } }

Intenté this.parent.child2 pero el padre se encuentra nulo.

EDITAR:
Cambiado:
static belongsTo = [parent:Parent]

También se agregó en el validador:
if(obj.parent){ return true } return false

Todavía está volviendo falso.


Para construir sobre la respuesta de @ bassmartin, consulte la documentación de validadores personalizados. Su validador debe declarar (al menos) dos argumentos, el segundo de los cuales es la instancia del objeto:

validator: { val, obj -> //obj.parent is what you''re looking for }


Reemplazar

static belongsTo = [Parent]

con

static belongsTo = [parent: Parent]

para que el niño sepa que su padre