JPA Criteria Query API und Reihenfolge nach zwei Spalten
Lesezeit: 3 Minuten
kmansor
Ich stecke mit einem einfachen Problem fest; kämpfen, wie man anruft order by auf einen joined Entität. Im Wesentlichen versuche ich damit folgendes zu erreichen JPA Criteria:
select distinct d from Department d
left join fetch d.children c
left join fetch c.appointments a
where d.parent is null
order by d.name, c.name
Wie zu erreichen order by d.name, c.name mit Criteria API? Ich habe es mit Expression, Path versucht, aber es hat nicht funktioniert. Alle Hinweise werden sehr geschätzt.
Wenn Sie ein paar Bestellungen hinzufügen müssen, können Sie so etwas machen (aber für Ihre Abfrage und verschiedene Stammobjekte)
Geben Sie die Sortierausdrücke an, die zum Sortieren der Abfrageergebnisse verwendet werden. Ersetzt die vorherigen Sortierausdrücke, falls vorhanden. Wenn keine Sortierausdrücke angegeben sind, wird die vorherige Sortierung, falls vorhanden, einfach entfernt, und die Ergebnisse werden in keiner bestimmten Reihenfolge zurückgegeben. Die Reihenfolge der Sortierausdrücke von links nach rechts bestimmt den Vorrang, wobei der ganz linke den höchsten Vorrang hat.
Parameter: o – Null oder mehr Ordnungsausdrücke
Rückgabe: die geänderte Abfrage
Seit: JPA 2.0
Wie wird dies als Antwort für den Problemautor beschrieben?
– Tschüss
13. Januar 2017 um 7:47 Uhr
Warum denkst du nicht? Er wollte wissen, wie man nach mehreren Eigenschaften bestellt. Meine Antwort enthält, wie das geht … Übersehe ich etwas?
– Adamsan
13. Januar 2017 um 21:58 Uhr
Weil es nicht mit Distinct und Sortieren nach Eigenschaft aus der Join-Tabelle funktioniert
– Tschüss
15. Januar 2017 um 3:17 Uhr
Die Lösung, die für mich funktioniert, ist die folgende
categoryRepository.findAll(predicates, new Sort(Direction.ASC, "sortOrder", "name"))
.forEach(categoryDtoList::add);
Dies kann verwendet werden, um eine Liste basierend auf sortOrder und name zu ordnen, wenn die sortOrder basierend auf dem Namen gleich ist, werden die Elemente sortiert
– Pradeep
29. März 2018 um 5:23 Uhr
Dies ist nur für Benutzer von Spring Data.
– Marcel Overdijk
13. November 2018 um 8:29 Uhr
Dies kann verwendet werden, um eine Liste basierend auf sortOrder und name zu ordnen, wenn die sortOrder basierend auf dem Namen gleich ist, werden die Elemente sortiert
– Pradeep
29. März 2018 um 5:23 Uhr
Dies ist nur für Benutzer von Spring Data.
– Marcel Overdijk
13. November 2018 um 8:29 Uhr
10865100cookie-checkJPA Criteria Query API und Reihenfolge nach zwei Spaltenyes