grails - Grails 1:m获得最多的关系

标签 grails gorm relationship

我对Grails比较陌生。
我有以下

class House {
    Integer number
    Integer maxResidents

    static belongsTo = [town: Town]
} 

class Town {
    String name

    static hasMany = [houses: House]
}

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

最佳答案

由于存在双向关联,因此可以通过查询House来实现:

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

这将为您返回结果列表,其中每个结果res的城镇为res[0],房屋数量为res[1]。如果您希望每个结果都是一个可以访问res.townres.numHouses的 map ,则应添加
resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)

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

关于grails - Grails 1:m获得最多的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975785/

相关文章:

grails - 导致多对多关系迁移

grails - 如何格式化g:选择中的grails列表

grails - Grails独特的约束-它会同时起作用吗?

grails复合 "unique constraint",但是如何?

ruby-on-rails - 单表继承(Rai​​ls)的一对多关系问题

objective-c - 核心数据关系故障: null key

grails - Grails 或 Play 框架的动态 ACL?

ajax - 在Grails中应用服务器端Javascript验证

hibernate - 保存时将Grails gorm舍入 float

java - 在Java中,当类B中发生事件而类B不知道类A的存在时,让类A执行某些操作的最佳方法是什么?