Ich versuche, die folgende SQL-Abfrage mit der JPA Criteria APIJPA Kriterien: in Klausel mit vielen Spalten
SELECT * FROM Table1 a
WHERE (a.category, a.priority) IN (
SELECT a1.category, max(a1.priority) FROM Table1 a1 GROUP BY a1.category
)
Funktionell zu schreiben, die Abfrage wählen Sie das Element der Tabelle 1 mit der höchsten Priorität für jede Kategorie.
categoryPriority = // defines the pair category/priority
mySubQuery = // defines the subquery
query.where(categoryPriority.in(mySubQuery)
Dies ist schematisch, was ich suche.
Die Definition der Unterabfrage ist kein Problem, da sie gut dokumentiert ist.
Aber ich finde keine Möglichkeit, das Paar zu definieren (a.category, a.priority).
Vielen Dank für Ihre Antwort. Da ich keine nativen Abfragen verwenden möchte, habe ich den Teil der vielen Spalten durch eine hässliche Verkettung des Werts der Spalten Kategorie und Priorität ersetzt, aber ich bin etwas enttäuscht. –