微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

排序 – Grails映射对多个字段进行排序:: Groovy对多个映射条目进行排序

在这一个。在Grails中,似乎无法在域映射中定义多个列的认排序。静态映射= {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}

显然,在后一种情况下,丢失了船,这种怪异的排序。我看过的帖子是:实现可比性,但如果可能,寻找更简洁的东西。

解决方法

这是一个Groovy解决方案。仍然基本上实现比较器。

list.sort { map1,map2 -> map1.rowNum <=> map2.rowNum ?: map1.position <=> map2.position }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐