繁体   English   中英

Grails域:如何访问父域数据?

[英]Grails Domain: How to access parent domain data?

我有一个父子域结构,并且我想访问子域中的父域数据作为验证器。 例如,在下面的代码示例中,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但发现父级为null。

编辑:
更改:
static belongsTo = [parent:Parent]

还添加了验证器:
if(obj.parent){ return true } return false

仍然返回假。

更换

static belongsTo = [Parent]

static belongsTo = [parent: Parent]

所以孩子知道他的父母

要以@bassmartin的答案为基础,请查看文档中的自定义验证器。 您的验证器应声明(至少)两个参数,其中第二个是对象实例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM