Paginierung mit mongoTemplate
Ich habe eine Abfrage mit Navigierbaren:
Query query = new Query().with(new PageRequests(page, size))
Wie kann ich es ausführen mit MongoTemplate ? Ich sehe nicht eine einzige Methode der Rückkehr Page<T>
.
InformationsquelleAutor Marcin Wisnicki | 2015-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
MongoTemplate
keinen Methoden zurückPage
. Diefind()
Methoden liefert eine ordentlicheList
.with(new PageRequests(page, size)
wird intern verwendet, um passen Sieskip
undlimit
mit einem MongoDB-query (ging durch eine count-Abfrage, die ich denke)Page
verwendet werden können in Verbindung mit MongoDB-repositories ist ein spezieller Fall des Spring data repositories.So, du wirst
MongoRepository
'sPage findAll(Pageable pageable)
für paginierte Ergebnisse (tatsächlich geerbt vonPagingAndSortingRepository
).InformationsquelleAutor Ori Dar
Es ist wahr, dass die
MongoTemplate
nichtfindXXX
mit Pageables.Aber Sie können den Frühling Repository
PageableExecutionUtils
.In deinem Beispiel würde es so Aussehen:
Wie in der ursprünglichen Quelle Daten-Repository, die
PageableExecutionUtils
tun eine Zählung verlangen und wickeln Sie es in ein schönesPage
für Sie.Hier können Sie sehen, dass Frühling ist, das gleiche zu tun.
Von Spring Data commons: github.com/spring-projects/spring-data-commons/blob/master/src/...
Ok, vielen Dank. Ich habe eine ältere version von Frühling.
Nicht diese Ursache die Abfrage zweimal ausgeführt wird, auf MongoDB Seite mit dem zusätzlichen Aufwand über das Netz?
ja, die Abfrage wird ausgeführt, zweimal. Da die Abfrage ausgeführt werden soll gegen eine indizierte Sammlung sollte es nicht eine große Sache. Okay, wenn Sie facebook-oder twitter-es könnte eine große Sache ;D. ich habe nicht eine andere Lösung
InformationsquelleAutor d0x
Basierend auf d0x Antwort suchen und am Feder code. Ich bin mit dieser Variante funktioniert die spring-boot-starter-data-mongodb-Abhängigkeit, ohne hinzufügen von spring data commons.
InformationsquelleAutor Razzlero