【问题标题】:Grails gorm query questionGrails gorm 查询问题
【发布时间】:2011-06-25 16:59:33
【问题描述】:

拥有领域类:

class A {

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

}

class B {

  String name
  String value
...

}

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

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

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

谢谢

【问题讨论】:

    标签: grails grails-orm


    【解决方案1】:

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

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

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

    这将是一个Map,其中键是A id,值是来自原始结果的Lists。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 1970-01-01
      • 2013-02-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多