我有一个父子域结构,我希望在子域中访问父域数据验证器。例如,在下面的代码示例中,child1有一个变量' name'为了验证目的,我需要child2数据。
我怎样才能实现这种情况?
我有这样的域名结构:
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
})
}
}
我试过了
this.parent.child2
但父母被发现为空。
编辑:
更改:
static belongsTo = [parent:Parent]
还在验证器中添加:
if(obj.parent){
return true
}
return false
仍然是假的。
答案 0 :(得分:1)
替换
static belongsTo = [Parent]
与
static belongsTo = [parent: Parent]
让孩子知道其父母
答案 1 :(得分:0)
要建立@ bassmartin的答案,请检查documentation以获取自定义验证器。您的验证器应该声明(至少)两个参数,第二个参数是对象实例:
validator: { val, obj ->
//obj.parent is what you're looking for
}