我正在尝试在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中使用子查询时遇到问题。我应该添加/更改什么才能使此查询正常工作?
答案 0 :(得分:0)
修正了它。
我只需要更改.where(qRoom.unit.eq(subQuery));
.where(qRoom.unit.in(subQuery.list(qRuimte.unit)));