У меня есть таблица Users, которая содержит два разных типа пользователей (A и B). Пользователи типа A могут иметь отношения с пользователями типа B (что записано в таблице отношений). Количество отношений, которые пользователь типа А может иметь с пользователями типа В, записывается в поле другой таблицы.
Я хочу, чтобы Hibernate возвращал всех пользователей типа A, у которых не установлены все их отношения. У меня есть SQL-запрос, который сделает это. Что мне нужно сделать?
EDIT
Мне удалось заставить это работать, бросив мой запрос в session.createSQLQuery (), но кажется странным иметь блок SQL в середине всего этого удивительного гибернационного кода. Я думаю, я бы предпочел использовать его в объектах HSQL или Hibernate, если это возможно.
Это псевдопросмотр, который я пытаюсь преобразовать в HSQL:
select userId
from (
select user_id, max_mentees, count(connection_id) num_mentees
from user_table
join mentor on mentor_id = user_id and user_status = 'ACTIVE'
left join connections on connection_mentor_id = mentor_id
and connection_status = 'ACTIVE' and connection_end > sysdate
group by user_id, max_mentees, connection_id
)
where (max_mentees > num_mentees)
group by user_id