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/...
[Déjà Répondu Ici][1] [1]: stackoverflow.com/questions/326053/...
OriginalL'auteur catrapture | 2009-08-20
Vous devez vous connecter pour publier un commentaire.
Quelque chose comme cela devrait fonctionner:
OriginalL'auteur Dave Klein