我有一个关于GORM和“多重”关系的问题,我在之前的搜索中找不到答案。
假设我们有三个域:
class A {
...
static hasMany = [Bs: B]
}
和
class B {
...
static belongsTo = A
static hasMany = [Cs: C]
}
和
class C {
static belongsTo = B
String name
dateCreated date
}
我想知道是否有可能使用类A的对象(类似于C.findAll(....,a:a.id)获取类C的对象列表,按dateCreated排序。 ))或者如果我必须使用更复杂的查询?
致以最诚挚的问候,
答案 0 :(得分:0)
它有点困难,因为你没有存储父对象的后向引用
像这样 - 我没有自己测试
A.executeQuery("select distinct c from A a join a.bs as b join b.cs as c where a = :a", [a: a])
答案 1 :(得分:0)
如果B有: static belongsTo = [a:A]
然后你可以这样做:
C.withCriteria {
a{
eq('id', <a's id here>)
}
order('dateCreated', 'desc')
}