Преобразовать SQL-запрос с помощью подвыбора в разделе выбора в HQL - PullRequest
0 голосов
/ 21 января 2010

У меня проблемы с преобразованием собственного SQL-запроса в HQL. Запрос выглядит примерно так:

select count(*)
, sum(select count(*) from employee e where e.company_id=c.id)) 
from company c where c.id = someID

Первое возвращаемое значение - количество компаний , второе - количество сотрудников для указанной компании.

т.е. Я должен получить эти два значения для компании с id = someID.

Проблема в том, что hibernate не поддерживает подвыборы в секции SELECT, только в WHERE - по спецификации.

На самом деле я могу:

1) использовать собственный запрос для запуска этого через EntityManager

2) сделать то же самое, разделив этот «сложный» запрос на два более простых запроса SQL

Но, может быть, существуют более удобные методы для реализации исходного запроса в HQL? - это вопрос.

Спасибо.

1 Ответ

1 голос
/ 21 января 2010

это может сработать:

select count(c.*) as count_companies
     , c as count_emp
from company c 
inner join 
(
     select company_id, count(*) as c
     from employee 
     where employee.company_id = someID 
     group by company_id
) e
on e.company_id=c.id
group by c.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...