供参考,随时为此建议一个更好的标题。我有以下的领域模型(我们在这个没有控制):GORM查询多父母和子对象与父母的财产
class Foo {
int id
String baz
Date someDate
static hasMany = [bars:Bar]
static mapping = {
id composite: [ "id", "baz" ]
}
}
class Bar {
int id
String baz
Date someDate
Foo foo
static mapping = {
id composite: ["id", "baz", "someDate"]
columns {
foo([:]) {
column name: "id"
column name: "baz"
}
}
}
}
我的问题是:我有FOOS的名单,我需要找到所有的酒吧Foo.someDate == Bar.someDate,但只在一个查询中,而不是每个Foo的查询,不涉及延迟加载。同时设置Bars以提前获取不是一种选择。
例如,如果这是我的数据(伪代码,我结合ID和巴兹成简单的“ID”为简单起见):
[
Foo (someDate:4/1/2013)
|___ bars: [{someDate:12/4/2012, id:1}, {someDate:4/1/2013, id:2}]
Foo (someDate:5/10/2012)
|___ bars: [{someDate:{4/1/2013, id:3}
Foo (someDate:3/3/2013)
|___ bars: [{someDate:3/3/2013, id:4}, {someDate:9/5/2013, id:5}]
]
我需要一个id为2和4返回酒吧查询。我真的不知道如何解决这个问题。
如果需要,它可能是HQL,但它最好是GORM查询。
不是GORM,但它很简单,完全符合我的需求。 –