我对 Grails 比较陌生。我有以下
class House {
Integer number
Integer maxResidents
static belongsTo = [town: Town]
}
class Town {
String name
static hasMany = [houses: House]
}
我想得到五个拥有最多房屋的城镇。我已经看到了创建标准的可能性,但我现在无法处理它。有人可以支持吗?谢谢!
我对 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.town
,res.numHouses
那么您应该添加
resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)
在该maxResults
行之后(以及import
文件顶部的相应内容)。