代码之家  ›  专栏  ›  技术社区  ›  sparkyspider

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

  •  1
  • sparkyspider  · 技术社区  · 12 年前

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

    我有一个 页面组件 具有许多的域类 所容纳之物 的。我想看看 页面组件 包含 所容纳之物 用一种特殊的方式 钥匙

    我想我可以说:

    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 回复  |  直到 7 年前
        1
  •  5
  •   Sergei Shushkevich    12 年前

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

    Content.findByPageComponentAndKey(pageComponent, "textnode")