2013-10-12 176 views
1

我有一個關於GORM和「多重」hasmany關係的問題,我沒有找到我以前的搜索答案。Grails:兒童的孩子

比方說,我們有三個域:

class A { 
... 
static hasMany = [Bs: B] 
} 

class B { 
... 
static belongsTo = A 
static hasMany = [Cs: C] 
} 

class C { 
static belongsTo = B 
String name 
dateCreated date 
} 

我想知道是否有可能得到的對象的列表C類,按dateCreated排序,使用類A的對象(類似C.findAll(....,a:a.id))或者如果我必須使用更復雜的查詢?

最好的問候,

回答

0

它一點點,因爲你不是存儲反向引用父對象

像這樣的事情更加困難 - 我沒有測試它自己

A.executeQuery("select distinct c from A a join a.bs as b join b.cs as c where a = :a", [a: a]) 
+0

感謝James爲您提供的解決方案。經過一些測試後,我沒有使用你的查詢,但我在我的域類中添加了一個反向引用(在我看來更簡單)。 – abincepto

0

如果B具有: 靜態屬於關聯= [A:A]

然後可以這樣做:

C.withCriteria { 
    a{ 
    eq('id', <a's id here>) 
    } 
    order('dateCreated', 'desc') 
}