Grails gorm查询问题

时间:2011-06-25 16:59:33

标签: grails gorm

拥有域类:

class A {

 Date dateCreated
 static hasMany = [b:B]
 ...

}

class B {

  String name
  String value
...

}

我可以使用什么createCriteria或HQL查询返回列表:

  • A的创建日期
  • A的B值,名称条目设置为“X”

注意:虽然没有明确的约束,但每个'X'和组合只有一个“值”。

由于

1 个答案:

答案 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'])

这将为您提供包含ListObject[]A.id个实例列表的A.dateCreated 3个元素B数组。我将id添加到查询中,以便您可以在客户端进行分组:

def grouped = results.groupBy { it[0] }

这将是Map,其中键是A ID,值是原始结果中的List

理想情况下,您要在数据库中进行分组,但这会使查询复杂化,并且假设您没有大量结果,那么它应该很快。