| 

.NET C# Java Javascript Exception

Criteria-Queries: Pagination kämpft gegen Projection

Dies ist das Archiv des ehemaligen Forums zum Thema Groovy, Grails, Griffon und Bean Scripting Framework, welches unter groovy-forum.de existierte. Die neue Adresse des Groovy-Forums ist: http://codekicker.de/fragen/themen/groovy.


Criteria-Queries: Pagination kämpft gegen Projection

mattes3 - 12.05.2009 14:35
Ein Hinweis an alle, die in Grails 1.1 mit Criteria-Queries mit Projections arbeiten: Wenn man der List-Methode noch Paginierungs-Optionen mitgibt, funktionieren die Projections nicht mehr! Also zum Beispiel dieser Code hier liefert nicht eine Liste von Tupeln [[id1, title1], [id2, title2], [id3, title3], [id4, title4], ...] (so wie man es naiverweise erwarten würde), sondern stattdessen eine Liste von Büchern:
List resultList = Book.createCriteria().list(params) {
	projections {
		groupProperty 'id'
		groupProperty 'title'
	}
}
params sind die Parameter, die aus dem Controller kommen und z.B. so etwas enthalten können: [offset:20, max:10, sort: 'title', order: 'asc']

Durch lästiges Drumrumprogrammieren fand ich diese Lösung hier, die mir jedoch nicht wirklich gefällt, weil sie internes Wissen über den HibernateCriteriaBuilder benutzt:
List resultList = Book.createCriteria().list {
	projections {
		groupProperty 'id'
		groupProperty 'title'
	}
	GrailsHibernateUtil.populateArgumentsForCriteria(instance, params)
}

Fällt jemandem von Euch etwas Besseres ein, um "paginiert zu projizieren"? :-)

Gruß,
Matthias


Stelle deine Groovy-Frage jetzt!


Diese Seite zeigt den Thread "Criteria-Queries: Pagination kämpft gegen Projection" der ehemaligen Webseite groovy-forum.de, welche durch einen Serverunfall zerstört wurde. codekicker.de hat viele Konversationen über die beliebte Programmiersprache Groovy und zugehörige Frameworks wie das Grails-Framework retten können.

Hast Du eine Frage zum Thema Groovy, Grails oder allgemein Java? Viele ehemalige groovy-forum.de Mitglieder beantworten dir auf codekicker.de deine Frage! Stelle jetzt eine Frage!

Viele weitere Diskussionen zu Grails und Groovy befinden sich auf der Threadübersicht des alten groovy-forum.de.