Jpa-paging mit zahlen und nächsten, vorherigen
Ich entschuldige mich für diese Frage, wenn jemand schon gefragt und Frage das eine vielleicht dumme Frage aber ich bin neu auf dieser, und Sie sind Experten, und ich würde lieben zu lernen, aus dem Ihre kompetente Beratung und Erfahrung.
Möchte ich hinzufügen, dass die Auslagerung auf eine Anwendung, die Anzeige von 200 Datensätzen pro Seite. Unten auf der Seite haben sollte zahlen. Wenn es 1050 die erste Seite, die angezeigt wird 100 und die unten auf der Seite zeigen die zahlen 1,2,3,4,5 & 6.
Was ist die Allgemeine Logik, um dies zu erreichen?
Ich weiß, dass die Datenbank auswählen muss 200 jedes mal und ich muss Sie verfolgen, von den ersten Datensatz.
- Gibt es eine Möglichkeit zu wissen, wie viele Datensätze zurückgegeben werden, die insgesamt, so dass ich wissen kann, wie viele zahlen auf dem display unten auf der Seite? Erfordert es die Auswahl von count () - Anweisung oder etwas anderes?
- Für die 1050 Datensätze, Die zahlen 1,2,3,4,5 & 6 angezeigt werden und durch klicken auf die einzelnen benötigt man einen Aufruf an den server. Gibt es eine Möglichkeit zu wissen, wie viele Datensätze zurückgegeben werden in den nächsten Aufruf der server? Erfordert es die Auswahl von count () - Anweisung oder etwas anderes?
- Vielen Dank allen für die Zeit nehmen, um meine Frage zu beantworten. Ich werde zu aktualisieren meinem code und lassen Sie wissen, wenn ich weitere Fragen habe darüber.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die JPA Criteria API um dies zu erreichen. Vorausgesetzt,TypedQuery, die Sie verwenden würden
setFirstResult
undsetLastResult
zum einschränken der Datensätze von der Datenbank zurückgegeben wird. Natürlich sind die Werte für diese Methoden wird davon abhängig sein, welche Seite angefordert wurde, und wie viele Datensätze werden immer pro Seite angezeigt.Hinweis: Dies setzt Voraus, die erste Seite ist 1 (im Gegensatz zu null).
Erhalten Sie eine Anzahl führen Sie eine standard-Kriterien Abfrage. Als Beispiel:
Können Sie anpassen, den oben genannten code, um die Anzahl in relation zu einer anderen Abfrage auch. Schließlich müssen Sie in irgendeiner Weise zu kommunizieren, dass die Gesamtzahl an den client zurück. Ein Weg dies zu tun ist, wickeln Sie das Ergebnis Ihrer Abfrage in einem anderen Objekt enthält ein Attribut für die Anzahl, oder gibt sagte-Objekt als Ergebnis Ihrer DAO nennen. Oder alternativ könnte man-store-der count-Attribut in einem Objekt in deinem anforderungsbereich.
Werden Sie in der Regel führen die gleiche Abfrage, außer mit count int select-Liste anstelle der Spalten vor ausführen der eigentlichen Abfrage, um herauszufinden, wie viele Seiten es gibt. Immer eine bestimmte Seite in hibernate kann sich dann mit so etwas wie:
Wenn die Durchführung der zusätzlichen Abfrage zu teuer eine operation dann könnten Sie nur die next/previous links oder alternativ die Bereitstellung von zusätzlichen Seiten wie nötig (z.B. Als die Letzte der geladenen Daten in Sicht kommt) via ajax.
Für die Anzeige seitenweise Ergebnisse, die zeigen, Seite, Anzahl der links, die ich empfehlen würde (vorausgesetzt, Sie verwenden jsp-Seiten zur Darstellung dieser Daten) mit der display-tag JSP-tag-Bibliothek. Display-tag verarbeitet paging und Sortieren die Anzeige tabellarischer Daten vorausgesetzt, können Sie es auf der JSP.
Ja, Sie haben, um ein select-count, bevor man die Zeilen selbst.
Haben Sie einen Blick auf Spring Data JPA. Es ist im Grunde Arbeit, wie Wahrnehmung zuvor, nur dass Sie nicht haben, es zu tun, das framework übernimmt das für Sie. Sie erhalten paging und Sortieren standardmäßig (Sie noch tun müssen, filtern Sie sich, wenn Sie nicht verwenden möchten Abfrage DSL).
Haben Sie ein 1h video auf der Hauptseite, das zeigt eine kurze Einführung, aber Sie brauchen nur zu beobachten, etwa 15 Minuten, um eine Idee zu bekommen, was id tut.