2013-10-12 2 views
1

У меня вопрос о GORM и «множественных» отношениях hasmany, и я не нашел ответа в своих предыдущих поисках.Grails: Children of Children

Допустим, у нас есть три области:

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, отсортированный по дате Созданный, используя объект класса 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

Спасибо Джеймсу за ваше решение. После некоторых тестов я не использовал ваш запрос, но добавил ссылку на ссылку в своем классе домена (более простой, на мой взгляд). – abincepto

0

Если B имеет: статический belongsTo = [а:]

, то вы можете сделать:

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