Относительно новичок в JPA, поэтому у меня есть один вопрос об архитектуре. Допустим, у меня есть таблицы EMPLOYEE и DEPARTMENT с отношением «многие к одному» (, т.е. многие сотрудники работают в одном отделе):
EMPLOYEE
EMPLOYEE_ID
EMPLOYEE_NAME
DEPARTMENT_ID
DEPARTMENT
DEPARTMENT_ID
DEPARTMENT_NAME
Так что я могу определить правильные объекты для сотрудников и отделов, нет проблем. Однако в одном представлении я хотел бы отобразить список отделов с количеством сотрудников, работающих в этом отделе, примерно так:
SELECT D.DEPARTMENT_NAME,
(SELECT COUNT(*) FROM EMPLOYEE E WHERE E.DEPARTMENT_ID = D.DEPARTMENT_ID) NUMBER_OF_EMPLOYEES
FROM DEPARTMENT D
Я просто не уверен, что является правильной стратегией для достижения этого с помощью JPA... Я не хочу всегда получать количество сотрудников для сущности отдела, так как есть только одно представление, когда оно необходимо.
Похоже, что Hibernate @Formula был бы одним из возможных подходов, но на самом деле он не соответствует стандарту JPA.