I'm not able to sort a list of Objects by a Date in descending order
Let's say this is my class Thing
class Thing {
Profil profil
String status = 'ready'
Date dtCreated = new Date()
}
Inside the method I'm creating the List things
List profiles = profil.xyz?.collect { Profil.collection.findOne(_id:it) }
List things = []
and then I populate the list with each associated Thing
of each profile
profiles.each() { profile,i ->
if(profile) {
things += Thing.findAllByProfilAndStatus(profile, "ready", [sort: 'dtCreated', order: 'desc']) as
}
Alright, now things
has a lot of things in it, unfortunately the [order: 'desc']
was applied to each set of things and iI need to sort the whole list by dtCreated
. That works wonderful like
things.sort{it.dtCreated}
Fine, now all the things are sorted by date but in the wrong order, the most recent thing is the last thing in the list
So I need to sort in the opposite direction, I didn't find anything on the web that brought me forward, I tried stuff like
things.sort{-it.dtCreated} //doesnt work
things.sort{it.dtCreated}.reverse() //has no effect
and I'm not finding any groovy approach for such a standard operation, maybe someone has a hint how I can sort my things by date in descending order ? There must be something like orm I used above [sort: 'dtCreated', order: 'desc']
or isn't it?
things.sort{-it.dtCreated.time}
– vegemite4me