ich versuche, eine CriteriaQuery zu bauen, die die folgenden Funktionen bietet:Kriterien Api: Bestellung/Auswahl nach implizit verknüpften Tabelle
Ich habe drei Tabellen mit den folgenden Feldern:
TABLE_A:
id, name_a
Table_B:
id, name_b
table_ab:
Jetzt möchte ich alle Elemente aus Tabelle_a nach dem Name_b-Feld des entsprechenden Elements in Tabelle_b sortiert bekommen.
Das Ergebnis sollte eine Spezifikation für die Verwendung in einem JpaRepository sein. Ich habe versucht, Joins, aber ich an der Stelle stecken, wie man kombiniert die Verbindungen:
Specification<TableA> specification = (root, query, cb) -> {
CriteriaQuery<TableAb> abQuery = cb.createQuery(TableAb.class);
CriteriaQuery<TableB> bQuery = cb.createQuery(TableB.class);
Root<TableAb> abRoot = abQuery.from(TableAb.class);
Join<TableAb, TableA> aJoin = abRoot.join("tableA");
Join<TableAb, TableB> bJoin = abRoot.join("tableB");
//combine joins
query.orderBy(cb.asc(/* Expression to order by */));
return cb.conjunction();
};
Meiner Meinung nach ist das Hauptproblem ist, dass es kein „Weg“ von TABLE_A ist zu Table_B, aber ich ausdrücklich nicht will eine Referenz innerhalb von Tabelle_a bis Tabelle_b haben.