Ich verwende eine JPA-eindeutige Projektion, um einige Daten zu erhalten:
%Vor%Dies funktioniert mit setFirstResult und setMaxResults für Seitendaten.
Allerdings muss ich die Gesamtzahl der Zeilen zählen, ohne alle zu holen. Ich habe es versucht:
%Vor%Dies funktioniert nicht (mit EclipseLink trotzdem) und es scheint nicht von der JPA-Spezifikation erlaubt zu sein. Gibt es eine andere Art und Weise? Ich möchte dazu keine SQL-Abfrage schreiben müssen.
Wenn EclipseLink und Ihre zugrunde liegende Datenbank Subselects zulassen, versuchen Sie Folgendes:
%Vor%Auf diese Weise können Sie einfach Ihre JQL eingeben, um die Gesamtergebnisgröße zu zählen.
Dies funktioniert für Hibernate-SQL-Abfragen. Ich werde es bald auf JP-QL-Abfragen versuchen.
Sie sagen, dass Sie dafür keine SQL-Abfrage schreiben wollen, aber was ist der Unterschied zwischen JPA QL und SQL? Wenn Sie die getResultList().size()
-Methode nicht zum Ermitteln der Anzahl der Gesamtzeilen verwenden möchten, verwenden Sie nur eine native SQL-Abfrage.
oder
%Vor%