如何使用基元为多对多创建Grails查询



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

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

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

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

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

但您到底想实现什么?Foo的列表,其中条形图等于(11,15,52),或者列表中有一个条形图,或者条形图列表包含给定列表中的每一个?不管怎样,我怀疑你是否可以在标准中或使用动态查找器中完成,我正试图在单元测试中完成,但什么都不起作用

我会创建另一个类似的域类

class FooBar {
    Foo foo
    Integer integer
}

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

最新更新