【问题标题】:GORM Criteria Sort by Absolute ValueGORM Criteria 按绝对值排序
【发布时间】:2012-05-02 19:11:50
【问题描述】:

我一直在使用 GORM 标准,我真的很喜欢它们(有助于降低复杂性并使代码易于理解)。

目前我在尝试按属性的绝对值排序结果时遇到一些问题:

Person.createCriteria(){
    order("abs(rating)", "desc")
}

这当然是行不通的。

有谁知道正确的做法是什么? (在 GORM 中按绝对值排序)

谢谢, 尼古拉斯

【问题讨论】:

    标签: hibernate grails grails-orm criteria


    【解决方案1】:

    我想不出任何可以直接在标准中按 abs 排序的东西,但是在标准之后排序会起作用:

        def personInstanceList = Person.withCriteria {
          //whatever is necessary for your query
        }
        personInstanceList.sort {a, b-> java.lang.Math.abs(b.rating) <=> java.lang.Math.abs(a.rating)}  //b.rating <=> a.rating sorts desc
    

    【讨论】:

    • 您好,Kelly,感谢您的回答,但此解决方案不适用于我的情况。查询后对列表进行排序,意味着您必须从数据库中查询整个数据集,这对于大集合(> 10'000)来说效率极低。这就是为什么我必须在 SQL 级别执行此操作!
    • 这不是我想要的,但经过很多小时试图找到如何解决我的问题后,我决定使用您的解决方案。谢谢:)!!
    猜你喜欢
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    • 2020-12-23
    • 1970-01-01
    • 2018-12-01
    • 2015-08-09
    相关资源
    最近更新 更多