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

标签 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属性的情况下执行此操作?

最佳答案

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

如果这不起作用,则需要尝试使用CriteriaBuilder来实现所需的功能。

关于grails - Grails:findAllBy动态方法-高级排序属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3702254/

相关文章:

grails - 在Groovy中创建具有外键约束的域类

grails - 我们可以在Grails的服务中获取 Controller 的实例吗

java - 在 Hibernate 中检索使用 BigInteger 映射的属性时出现问题

hibernate - 如何在 groovy/grails 中为嵌套对象创建条件?

grails - 使用g:select with service中的查询的Grails

grails - Grails-_template中的countBy计算所有记录而不是域实例

grails - 如何实现只读 Controller 操作

json - 如何将漂亮的 JSON 放入 REST api 中

grails - 如何知道 Grails hasMany 关系中的父级是谁?

grails - Grails插件站点版本语法