Tri sur plusieurs champs avec des critères de Graal

J'ai la requête suivante qui aimerai sortie de programme par "raceDate" et par "raceNo" de l'asc. Je peux comprendre comment trier un champ, mais pas par deux, des idées?

def list = {
params.max = Math.min( params.max ? params.max.toInteger() : 20,  100) 
params.offset = params?.offset?.toInteger() ?: 0
params.sort = "raceDate"
params.order = params?.order ?: "asc"
def results = Race.createCriteria().list(
max: params.max,
offset: params.offset,
sort: params.sort, 
order: params.order
) {
and {
if (params.raceNo && params.raceNo != '')
eq("raceNo", params.raceNo.toInteger())
if (params.country && params.country != '')
eq("country", params.country)
if (params.venue && params.venue != '')
eq("venue", params.venue)
if (params.raceType && params.raceType != '')
eq("raceType", params.raceType)
if (params.surface && params.surface != '')
eq("surface", params.surface)
if (params.officialGoing && params.officialGoing != '')
eq("officialGoing", params.officialGoing)
if (params.raceDateStart_year && params.raceDateStart_month && params.raceDateStart_day 
&& params.raceDateEnd_year && params.raceDateEnd_month && params.raceDateEnd_day) {
String startInput = "${params.raceDateStart_year}/${params.raceDateStart_month}/${params.raceDateStart_day}"
Date startDate = jodaFormatter.parseDateTime(startInput).toDate();
String endInput = "${params.raceDateEnd_year}/${params.raceDateEnd_month}/${params.raceDateEnd_day}"
Date endDate = jodaFormatter.parseDateTime(endInput).toDate();  
between("raceDate", startDate, endDate)
}
}
}
[ raceInstanceList:results, raceInstanceTotal:results.totalCount, params:params ]
}
Je pense que votre exemple pourrait être coupé un peu. class Foo { String nom, int age } Puis demandez, comment puis-je utiliser GORM critères d'ordre d'abord par son nom, puis par l'âge?
[Déjà Répondu Ici][1] [1]: stackoverflow.com/questions/326053/...

OriginalL'auteur catrapture | 2009-08-20