当前位置:  开发笔记 > 编程语言 > 正文

如何在Grails的多个字段中订购?

如何解决《如何在Grails的多个字段中订购?》经验,为你挑选了4个好方法。

有没有办法获得由两个字段排序的列表,比如姓和名?

我知道.listOrderByLastAndFirst.list(sort:'last, first')将无法正常工作.



1> mattlary..:

Hates_标准答案对我来说似乎不起作用; 把"last,first"为了只会导致异常说"Property 'last,first' not found".要在两个字段上订购,您可以执行以下操作:

def c = MyDomain.createCriteria()
def results = c.list {
    and{
       order('last','desc')
       order('first','desc')
    }
}


没有Grails 2.3.7中的外部`和`块,它的工作方式相同

2> 小智..:

这已经很老了,但帮助我找到了合适的解决方案.使用withCriteria快捷方式的"清洁"代码示例:

def c = MyDomain.withCriteria {
    and {
        order('last', 'desc')
        order('first', 'desc')
    }
}



3> Hates_..:

这个旧解决方案不再有效.请参阅下面的mattlary的答案

您可能必须在HQL中编写自定义查找程序或使用Criteria Builder.

MyDomain.find("from Domain as d order by last,first desc")

要么

def c = MyDomain.createCriteria()
def results = c.list {
       order("last,first", "desc")
}


工作5年前;)羞耻我无法删除它.
哦,我不喜欢那些过去常常工作的人.
我试过这个,解决方案不起作用.

4> chim..:

更复杂的订购标准,(在Grails 2.1.0中测试)

def c = MyDomain.withCriteria {
    property {
        order('last', 'desc')
    }
    order('first', 'desc')
}

首先通过MyDomain.property.last然后通过MyDomain.first排序

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有