vir*_*yes 17 sorting grails groovy
难倒在这一个.在Grails中,似乎无法在域映射中的多个列上定义默认排序la static mapping = {sort'prop1 desc,prop2 asc'}或{sort([prop1:'desc',prop2:'asc']) }.只有第一列被排序,跛脚.
类似地,当尝试Groovy在多个列上对Grails findAllBy查询进行排序时,第二种排序会覆盖第一种.
def list = [[rowNum:2,position:3],[rowNum:1,position:2],[rowNum:3,position:1]]
list.sort {it.rowNum}的.sort {it.position}
在后一种情况下显然错过了船,经常排序.我看过帖子重新:实现可比性,但如果可能的话,寻找更简洁的东西.
Pet*_*ser 31
这是一个Groovy解决方案.仍然基本上实现了比较器.
list.sort { map1, map2 -> map1.rowNum <=> map2.rowNum ?: map1.position <=> map2.position }
Run Code Online (Sandbox Code Playgroud)
感谢GreenGiant的链接,我们发现该问题已在2.3版本中修复.
还有示例代码:
static mapping =
{ sort([lastname:'asc', name:'asc']) }
Run Code Online (Sandbox Code Playgroud)
它在2.4.3中为我工作
| 归档时间: |
|
| 查看次数: |
12634 次 |
| 最近记录: |