有人可以为我解释这个JPQL查询吗?

时间:2014-01-27 02:33:35

标签: java jpa jpql

这个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时,第二次加入的原因是什么?

1 个答案:

答案 0 :(得分:2)

加入部门项目是必要的,因为WHERE子句中需要单个项目:

p.location = :location

Projects是一个集合。因此e.projects是集合值路径表达式。无法浏览集合值路径表达式。以下构造不会起作用,因为集合没有location属性。

e.projects.location = :location