Grails 中的域类迭代

发布于 2024-09-17 20:05:33 字数 229 浏览 5 评论 0原文

我在两个域类之间有以下关系:

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]
}

class Item {
   String name
}

并且我需要知道对于给定的 Emp(itemsell 和 itembuy),两个集合共有哪些项目;我怎样才能进行这样的迭代?

谢谢

I have the following relationship between two domain classes:

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]
}

class Item {
   String name
}

And I need to know what items are common to both collections for a given Emp (itemsell and itembuy); how can I do such iteration?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

草莓酥 2024-09-24 20:05:33

对 Emp 类进行这些更改,

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]

  // Modifications
  Collection<Item> getCommonItems() {
      itemsell.intersect(itembuy)
  }    

  static transients = [ 'commonItems' ]
}

然后您可以调用 emp.commonItems 来获取公共项。您应该将 commonItems 添加到 transients 列表中,以便 GORM 知道这不是持久属性

Make these changes to the Emp class

class Emp {
  String name
  hasMany = [itemsell:Item, itembuy:Item]

  // Modifications
  Collection<Item> getCommonItems() {
      itemsell.intersect(itembuy)
  }    

  static transients = [ 'commonItems' ]
}

You can then call emp.commonItems to get the items in common. You should add commonItems to the transients list, so that GORM understands that this is not a persistent property

多彩岁月 2024-09-24 20:05:33

对其中一个集合使用 findAll 方法。像这样的东西:

def similarItems(itemsell, itembuy) {
   itemsell.findAll{ sell -> itembuy.contains(sell) }
}

Use the findAll method on one of the collections. Something like this:

def similarItems(itemsell, itembuy) {
   itemsell.findAll{ sell -> itembuy.contains(sell) }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文