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 将是一种可能的方法,但是 afaik 它不符合 JPA 标准。