У меня есть две таблицы, назовем их Лицом и интересом. Человек может иметь много интересов. То, что я пытаюсь сделать сейчас, состоит в том, чтобы создать список лиц, который упорядочен по количеству интересов, которые у них есть. Я не заинтересован в том, сколько интересов у каждого человека, я только хочу, чтобы список был заказан таким образом (я все еще хочу иметь весь объект Person из запроса)JPA Запрос с подзапросом в предложении ORDER
В простом SQL это будет запрос например:
SELECT p.*, COUNT(i.id) as cnt FROM person p, interest i WHERE p.id = i.person_id ORDER BY cnt DESC
Но я не могу понять, как получить такой запрос в JPA. Я пробовал следующее:
Join<Person, Interest> interests = rootPerson.join("interests", JoinType.LEFT);
criteriaQuery.orderBy(builder.desc(builder.count(interests)))
Но это не дает правильных данных.
Я также пытался написать подзапрос, но я не уверен, как я могу использовать подзапрос в предложении ORDER by.
Любые идеи? Спасибо;)
Как бы ваш SQL работал без группировки на человека? – Chris