Grails 1:我得到的关系最多

时间:2013-02-20 08:59:09

标签: grails gorm relationship

我对Grails来说比较新。 我有以下

class House {
    Integer number
    Integer maxResidents

    static belongsTo = [town: Town]
} 

class Town {
    String name

    static hasMany = [houses: House]
}

我希望得到五个拥有大多数房屋的城镇。我已经看到了创建标准的可能性,但我现在无法处理它。有人可以支持吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

由于您具有双向关联,因此可以使用House上的查询执行此操作:

def result = House.withCriteria {
  projections {
    groupProperty("town", "town")
    rowCount("numHouses")
  }
  order("numHouses", "desc")
  maxResults(5)
}

这会返回一个结果列表,其中每个结果res的城镇为res[0],房屋数量为res[1]。如果您希望每个结果都是可以访问res.townres.numHouses的地图,那么您应该添加

resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)

maxResults行之后(以及文件顶部的相应import)。