有没有办法获得由两个字段排序的列表,比如姓和名?
我知道.listOrderByLastAndFirst
和.list(sort:'last, first')
将无法正常工作.
Hates_标准答案对我来说似乎不起作用; 把"last,first"
为了只会导致异常说"Property 'last,first' not found"
.要在两个字段上订购,您可以执行以下操作:
def c = MyDomain.createCriteria() def results = c.list { and{ order('last','desc') order('first','desc') } }
这已经很老了,但帮助我找到了合适的解决方案.使用withCriteria快捷方式的"清洁"代码示例:
def c = MyDomain.withCriteria { and { order('last', 'desc') order('first', 'desc') } }
这个旧解决方案不再有效.请参阅下面的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") }
更复杂的订购标准,(在Grails 2.1.0中测试)
def c = MyDomain.withCriteria { property { order('last', 'desc') } order('first', 'desc') }
首先通过MyDomain.property.last然后通过MyDomain.first排序