2016-03-30 16 views
1

QueryDSLで次のSQLクエリを再作成しようとしています。以下は、現在intededとして動作している私のSQLクエリです。QueryDSLサブクエリが機能しない

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)) 

同じことを行うQueryDSLクエリを作成しようとしていますが、下のクエリ以外は正直なところありません。

JPASubQuery subQuery = new JPASubQuery(); 
subQuery.from(qRoom).groupBy(qRoom.unit).having(qRoom.sqft.sum().goe(0)); 

JPAQuery unitquery = from(qRoom) 
    .where(qRoom.building.eq(building)).where(qRoom.unit.eq(subQuery)); 

return unitquery.list(qRoom); 

上記のクエリは機能していません。私はQueryDSLでサブクエリを使用する際に問題があります。このクエリを機能させるために追加/変更する必要があるのは何ですか?

+1

あなたはすべてのエラーメッセージが発生しているか、どのようにあなたはそれが働いていないことを知っていますあまりにも.where(qRoom.unit.eq(subQuery));を変更する必要が? – jojonas

+0

@jojonas私のサブクエリがユニットオブジェクトを返していない、私のサブクエリのユニットとして私の 'メイン'クエリからユニットを使用する方法もわかりません。 – inControl

+0

JPAを使用していますか?どの永続性フレームワークですか? –

答えて

0

修正済みです。

私はちょうど.where(qRoom.unit.in(subQuery.list(qRuimte.unit)));

関連する問題