如何为多对多使用原语创建Grails查询?

时间:2015-02-20 14:41:59

标签: grails join hql gorm

我有一个POGO,我们打电话给Foo,它有一个Bars列表。在数据库中,这些是简单的整数,但它们存储在一个单独的表中( 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。我怎么写这个?

1 个答案:

答案 0 :(得分:0)

但你究竟想要实现什么?条形码等于(11,15,52)的Foo列表,或列表中的一个条形图或条形列表是否包含给定列表中的每一个? 无论哪种方式,我怀疑你可以在标准或使用动态查找器,我试图在单元测试中做它没有任何工作

我会创建另一个像

这样的域类
class FooBar {
    Foo foo
    Integer integer
}

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