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