【问题标题】:Criteria and collections - Grails标准和集合 - Grails
【发布时间】:2013-08-16 17:42:08
【问题描述】:

我的域类中有一组整数,例如...

class MyDomain {
    (...)
    Set ids
    (...)
}

并且希望有一个标准来查找我的对象在该集合中是否具有特定的 id。

这意味着...

MyDomain.withCriteria {
    /* ids contains myId * /
}

'in' 不起作用 - 我想要反过来。 myId 必须在 ids 内。

那么 - 任何人都可以帮助我吗?

编辑:

假设我有一个 MyDomain 对象,其 id 集包含 [2,3] 和另一个具有 [3,4]。

我希望有一个条件来返回所有包含 id 集中 id 2 的 MyDomain 对象,因此我的条件的结果值将是一个仅包含提到的第一个 MyDomain 对象的列表。

【问题讨论】:

  • 你能举一个数据的例子吗?什么会被返回和被忽略?您对查询的口头描述有点含糊。
  • @Sérgio - 实际上这个链接很有帮助,但不适用于那种特定情况,因为我有一组 id 而不是一组具有 id 的对象......原来我可以' t 使用 IdEq 也没有像这样的标准:ids { idEq(myId) } ... 因为我的集合中有 ID。
  • @codelark 我已经编辑了描述 - 不过我不确定现在是否更清楚了。

标签: hibernate grails criteria hibernate-criteria


【解决方案1】:

如果您想要/需要标准,请关注@Sergio 发布的链接,但我更喜欢 HQL:

MyDomain.executeQuery("Select m from MyDomain m join m.ids as id where id = :id", [id: myId])

【讨论】:

  • 我最终使用了 HQL - 完全一样。但我仍然想知道我是否可以使用标准来做到这一点:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2010-10-15
  • 2023-03-09
相关资源
最近更新 更多