我对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
的 map ,则应添加resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)
在
maxResults
行之后(以及文件顶部的相应import
)。
关于grails - Grails 1:m获得最多的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14975785/