Kann COUNT mit einer DISTINCT JPA-Projektion verwendet werden?

8

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.

    
David Tinker 05.10.2010, 08:19
quelle

3 Antworten

1

Versuchen Sie Folgendes:

%Vor%     
Lars Høidahl 17.03.2011 13:09
quelle
0

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.

    
SaSConsul 03.06.2011 03:05
quelle
-2

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.

%Vor%

oder

%Vor%     
Shervin Asgari 05.10.2010 09:09
quelle

Tags und Links