【发布时间】:2013-06-17 21:54:08
【问题描述】:
我无法按日期降序对对象列表进行排序
假设这是我的班级Thing
class Thing {
Profil profil
String status = 'ready'
Date dtCreated = new Date()
}
在我创建List things的方法中
List profiles = profil.xyz?.collect { Profil.collection.findOne(_id:it) }
List things = []
然后我用每个配置文件的每个关联 Thing 填充列表
profiles.each() { profile,i ->
if(profile) {
things += Thing.findAllByProfilAndStatus(profile, "ready", [sort: 'dtCreated', order: 'desc']) as
}
好的,现在things 里面有很多东西,不幸的是[order: 'desc'] 被应用于每组东西,我需要按dtCreated 对整个列表进行排序。效果很好,就像
things.sort{it.dtCreated}
好的,现在所有的东西都按日期排序,但是顺序错误,最近的东西是列表中的最后一个东西
所以我需要按相反的方向排序,我没有在网上找到任何让我前进的东西,我尝试了类似的东西
things.sort{-it.dtCreated} //doesnt work
things.sort{it.dtCreated}.reverse() //has no effect
而且我没有为这种标准操作找到任何常规方法,也许有人提示我如何按日期按降序对我的东西进行排序?上面一定有我用过的 orm 之类的东西[sort: 'dtCreated', order: 'desc']
不是吗?
【问题讨论】:
-
things.sort{-it.dtCreated.time}
标签: java date sorting grails groovy