供參考,隨時爲此建議一個更好的標題。我有以下的領域模型(我們在這個沒有控制):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,但它很簡單,完全符合我的需求。 –