HQL будет
def results = A.executeQuery(
'select a.id, a.dateCreated, b from A a inner join a.b b ' +
'where b.name=:name',
[name: 'X'])
Это даст вам List
из трехэлементных Object[]
массивов, содержащих A.id
, A.dateCreated
и список B
экземпляров. Я добавил идентификатор в запрос, чтобы вы могли сгруппировать его по стороне клиента:
def grouped = results.groupBy { it[0] }
Это будет Map
, где ключами являются A
идентификаторы, а значения - List
s от исходных результатов.
В идеале вы должны выполнить группировку в базе данных, но это усложнит запрос, и, если у вас нет большого количества результатов, оно должно быть быстрым.