这个JPQL查询是什么?
SELECT e
FROM Department d JOIN d.employees e JOIN e.projects p
WHERE
e.salary = :amount and
d.name = :name and
p.location = :location"
我理解Department
实体Employee
加入的第一个JOIN,但是当我们选择e
时,第二次加入的原因是什么?
答案 0 :(得分:2)
加入部门项目是必要的,因为WHERE子句中需要单个项目:
p.location = :location
Projects是一个集合。因此e.projects
是集合值路径表达式。无法浏览集合值路径表达式。以下构造不会起作用,因为集合没有location
属性。
e.projects.location = :location