2016-03-30 6 views
1

Ich versuche, die folgende SQL-Abfrage in QueryDSL neu zu erstellen. Das Folgende ist meine SQL-Abfrage, die derzeit als Intendiert arbeitet.QueryDSL-Unterabfrage funktioniert nicht

SELECT * FROM room x WHERE unit_id = (SELECT unit_id FROM room WHERE unit_id = x.unit_id GROUP BY unit_id HAVING(SUM(sqft) > 0)) 

Ich versuche, eine QueryDSL Abfrage zu schreiben, die die gleiche Sache tut, aber ehrlich gesagt nicht weiter als die untere Abfrage kommen kann.

Die obige Abfrage funktioniert nicht und ich habe Probleme bei der Verwendung von Unterabfragen in QueryDSL. Was sollte ich hinzufügen/ändern, damit diese Abfrage funktioniert?

+1

stoßen Sie Fehlermeldungen oder wie Sie wissen, dass es nicht funktioniert hat? – jojonas

+0

@jojonas Meine Unterabfrage gibt kein Einheitsobjekt zurück. Außerdem weiß ich nicht, wie ich die Einheit aus meiner Hauptabfrage als Einheit für meine Unterabfrage verwenden soll. – inControl

+0

Sie verwenden JPA? welcher Persistenzrahmen? –

Antwort

0

Es wurde behoben.

ich .where(qRoom.unit.eq(subQuery)); zu ändern brauchte nur .where(qRoom.unit.in(subQuery.list(qRuimte.unit)));

Verwandte Themen