在Grails GORM中搜索域对象的子项

时间:2012-10-02 19:53:45

标签: grails groovy gorm

如何在Groovy / Gorm中正确编写此代码?

我有一个 PageComponent 域类,其中包含许多 Content 。我想查看特定的 PageComponent 是否包含带有特定密钥的内容

我想我可以说:

def pageComponent = PageComponent.get(1);

if (pageComponent.contents.findByKey("textnode") {
  // update
} else {
  // insert
}

目前,我正在使用它。不是很优雅......

def pageComponent = PageComponent.get(1);

def content = Content.withCriteria {
    eq "pageComponent.id", pageComponent.id
    eq "key", "textnode"
}

1 个答案:

答案 0 :(得分:5)

您还可以使用动态查找器:

Content.findByPageComponentAndKey(pageComponent, "textnode")