То, как вы описываете ожидаемые результаты, является своеобразным, и я не могу точно сказать, чего вы там хотите ...
List<A> aList = [..., B: [..., C: [... name: 'name', attr1: 'attr1', attr2: 'attr2']]]
Объявленный тип aList
предполагает, что вы хотите List<A>
, но отображаемое вами значение выглядит как Map
с некоторыми вложенными Map
s.
Если вы выполните такой запрос ...
def aList = A.withCriteria {
// your criteria goes here
}
То, что возвращается из этого, будет List
из A
, и каждый A
будет ссылаться на B
, а каждый B
будет ссылаться на C
.
def aList = A.withCriteria {
// your criteria goes here
}
for(A obj : aList) {
B b = obj.b
C c = b.c
// ...
}
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ НА ОСНОВЕ КОММЕНТАРИИ:
Неясно, хотите ли вы, чтобы их всегда охотно доставали, или если вы хотите выразить это при выражении запроса. Звучит так, как будто вы хотите выразить это, когда выражаете запрос, что можно сделать следующим образом ...
import import org.hibernate.FetchMode
// ...
A.withCriteria {
// criteria goes here
fetchMode "b", FetchMode.JOIN
fetchMode "b.c", FetchMode.JOIN
}