拥有域类:
class A {
Date dateCreated
static hasMany = [b:B]
...
}
class B {
String name
String value
...
}
我可以使用什么createCriteria或HQL查询返回列表:
注意:虽然没有明确的约束,但每个'X'和组合只有一个“值”。
由于
答案 0 :(得分:2)
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
3个元素B
数组。我将id添加到查询中,以便您可以在客户端进行分组:
def grouped = results.groupBy { it[0] }
这将是Map
,其中键是A
ID,值是原始结果中的List
。
理想情况下,您要在数据库中进行分组,但这会使查询复杂化,并且假设您没有大量结果,那么它应该很快。