The*_*ain 41 grails sql-order-by grails-orm
有没有办法获得由两个字段排序的列表,比如姓和名?
我知道.listOrderByLastAndFirst和.list(sort:'last, first')将无法正常工作.
mat*_*ary 82
Hates_标准答案对我来说似乎不起作用; 把"last,first"为了只会导致异常说"Property 'last,first' not found".要在两个字段上订购,您可以执行以下操作:
def c = MyDomain.createCriteria()
def results = c.list {
and{
order('last','desc')
order('first','desc')
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
这已经很老了,但帮助我找到了合适的解决方案.使用withCriteria快捷方式的"清洁"代码示例:
def c = MyDomain.withCriteria {
and {
order('last', 'desc')
order('first', 'desc')
}
}
Run Code Online (Sandbox Code Playgroud)
这个旧解决方案不再有效.请参阅下面的mattlary的答案
您可能必须在HQL中编写自定义查找程序或使用Criteria Builder.
MyDomain.find("from Domain as d order by last,first desc")
Run Code Online (Sandbox Code Playgroud)
要么
def c = MyDomain.createCriteria()
def results = c.list {
order("last,first", "desc")
}
Run Code Online (Sandbox Code Playgroud)
小智 6
MyDomain.findAll(sort: ['first': 'desc','last':'desc'])
Run Code Online (Sandbox Code Playgroud)
适用于 grails-datastore-gorm:6.0.3
更复杂的订购标准,(在Grails 2.1.0中测试)
def c = MyDomain.withCriteria {
property {
order('last', 'desc')
}
order('first', 'desc')
}
Run Code Online (Sandbox Code Playgroud)
首先通过MyDomain.property.last然后通过MyDomain.first排序
小智 5
你可以这样做
def results=MyDomain.findAll([sort:"last",order:'desc'],[sort:"first",order:'desc']);
Run Code Online (Sandbox Code Playgroud)
这行代码将首先按人员的姓氏和名字对域类“MyDomain”的结果进行排序。
| 归档时间: |
|
| 查看次数: |
36163 次 |
| 最近记录: |