Grails:findAllBy动态方法 - 高级排序属性

时间:2010-09-13 16:12:50

标签: grails gorm

我有一个User类和一个Item类,一个用户可以拥有多个项目。

我想使用finndAllByProperty基于其他属性选择一些用户并添加分页参数(请参阅http://www.grails.org/doc/1.2.2/ref/Domain%20Classes/findAllBy.html。)

问题是我想根据每个用户拥有多少项来对结果进行排序所以我想做出类似的结果:

myUsers = User.findAllByProperty(propertyInstance,[max:10, offset:offset, sort:'items.size()', order:"desc"])

但当然“sort:'items.size()'”不起作用。是否有任何方法可以在用户域中添加itemsNr属性,以便在添加/删除的每个项目上更新?

1 个答案:

答案 0 :(得分:1)

您是否尝试过排序:'count(items)'? HQL确实提供了选择集合大小的方法,但我不确定它是否可以通过findAllBy *

工作

如果这不起作用,您需要尝试使用CriteriaBuilder来实现您想要的效果。