QueryDSL子查询无法正常工作

时间:2016-03-30 12:54:42

标签: java mysql querydsl

我正在尝试在QueryDSL中重新创建以下SQL查询。以下是我的SQL查询,目前正在进行中。

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 个答案:

答案 0 :(得分:0)

修正了它。

我只需要更改.where(qRoom.unit.eq(subQuery)); .where(qRoom.unit.in(subQuery.list(qRuimte.unit)));