2014-01-27 90 views
1

這是什麼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實體加盟,但什麼是對第二個連接,而我們只是選擇e的原因是什麼?

+2

發帖說'WHERE'子句,那麼。特別是,它是否使用'p'作爲過濾器? – chrylis

+0

@chrylis,是的。更新。 –

+3

所以問題得到解答。 – Baby

回答

2

加入到部門的項目是必要的,因爲單一的項目是後來在WHERE子句需要:

p.location = :location 

項目是一個集合。因此e.projects是集合值路徑表達式。無法通過集合值路徑表達式進行導航。以下構建不會工作,因爲收集沒有location屬性。

e.projects.location = :location 
相關問題