JPA は比較的新しいので、アーキテクチャに関する質問が 1 つあります。多対 1 の関係を持つ EMPLOYEE と DEPARTMENT テーブルがあるとします (つまり、多くの従業員が 1 つの部門で働いています)。
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を使用してこれを達成するための正しい戦略が何であるかわかりません...必要なときにビューが1つしかないため、Departmentエンティティの従業員数を常に取得したくありません。
Hibernate の @Formula が 1 つの可能なアプローチのように見えますが、JPA 標準に準拠していません。