JPA -вычисляемый столбец как свойство класса объектов?

Относительно новичок в 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.

6
задан AndreiM 9 July 2012 в 22:20
поделиться