【问题标题】:How do I create a Grails query for a many-to-many using primitives?如何使用原语为多对多创建 Grails 查询?
【发布时间】:2015-04-22 06:52:33
【问题描述】:

我有一个 POGO,我们称之为 Foo,它有一个 Bar 列表。在数据库中,这些是简单的整数,但它们存储在单独的表中 (Foo_Bars)

class Foo {
    String name
    ...
    static hasMany = [bars:Integer]
    ...
}

所以我的问题是,如何创建一个查询来查找列表中带有条形的所有 Foos。我知道如何用 SQL 编写它。

SELECT * FROM foo, foo_bars
WHERE foo.id = foo_bars.foo_id
AND foo_bars.bars_integer IN (11, 15, 52)

但我认为必须有更简单的方法,使用 GORM 或 HQL。这个要怎么写?

【问题讨论】:

    标签: grails join hql grails-orm


    【解决方案1】:

    但是您到底想达到什么目标? Foo 的列表,其中 bar 等于 (11,15,52),或者一个条在列表中,或者条列表包含每个给定列表? 无论哪种方式,我怀疑你可以在标准或使用动态查找器中做到这一点,我正在尝试在单元测试中做到这一点,但没有任何效果

    我会创建另一个域类,例如

    class FooBar {
        Foo foo
        Integer integer
    }
    

    这将创建与您已经拥有的完全相同的数据库表,然后查询会更简单

    【讨论】:

    • 我想要 Foo 中的所有 Bars 匹配 11 和 15 和 52。Foo 的集合中可以有更多 Bars,但这没关系。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 2011-01-04
    • 2011-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多