Zählen bestimmter Elemente in bestimmten Feldern in QueryDSL

9

Edit: Es stellt sich heraus, dass JPA dies nicht ausdrücken kann. Die Lösung sollte in SQL neu geschrieben werden.

Ich verwende QueryDSL, um eine zusammengefasste Abfrage für einen JPA-Datensatz für die Berichterstellung durchzuführen. Ich habe kein Problem, die Berichtsdaten zu extrahieren. Zum Beispiel:

%Vor%

Dies erzeugt eine Liste meines DTO-Objekts, von denen jedes eine Fahrzeugmarke, ein Fahrzeugmodell und die Anzahl der Fahrzeuge dieses Markenmodells enthält. So:

%Vor%

Aber ich kann die Syntax nicht ausarbeiten, um die Anzahl der Zeilen zu zählen, bevor ich die Abfrage tatsächlich ausführe. Die Syntax, die ich mir vorstelle, ist wie diese, die nicht existiert:

%Vor%

Ich habe eine ziemlich ineffiziente Option gefunden:

%Vor%

Gibt es etwas besseres?

    
Adrian Cox 30.03.2012, 13:32
quelle

2 Antworten

2

Dies ist keine QueryDSL-Einschränkung, sondern eine JPA-Einschränkung. Die Lösung sollte in SQL neu geschrieben werden.

    
Adrian Cox 20.10.2012, 13:34
quelle
1

Sie können query.select(q.field.countDistinct())

eingeben     
Ali Saeed 11.08.2016 20:05
quelle

Tags und Links