Я пытаюсь воссоздать следующий SQL-запрос в QueryDSL. Ниже приведен мой SQL-запрос, который в настоящее время работает как inteded.Подзапрос 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. Что я должен добавить/изменить, чтобы этот запрос работал?
Вы встречая никаких сообщений об ошибках или, как вы знаете, что это не работает? – jojonas
@jojonas мой подзапрос не возвращает единичный объект, также я не знаю, как использовать модуль из моего «основного» запроса в качестве единицы для моего подзапроса. – inControl
Вы используете JPA? в какой персистентности? –