我有一个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属性的情况下执行此操作?
最佳答案
您是否尝试过排序:'count(items)'? HQL确实提供了用于选择集合大小的方法,但是我不确定它是否可以通过findAllBy *工作
如果这不起作用,则需要尝试使用CriteriaBuilder来实现所需的功能。
关于grails - Grails:findAllBy动态方法-高级排序属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3702254/