2011-12-01 55 views

回答

17
select distinct d from Document d inner join d.accessors a where a.id = :id 

你應該學會如何SQL連接工作,然後學習如何使用連接在JPQL。這是至關重要的。你會在網上找到大量的教程。 Google是你的朋友。

+0

@ user1071828你應該點擊刻度來表示,這是正確的答案;-) – fommil

+0

可以請你檢查這個問題? http://stackoverflow.com/questions/12051559/jpa-join-fetch-query-with-many-to-many – Panos

+0

請不要忘記獨特。我無法弄清楚爲什麼我要結束重複的實體:') – Jelle

33
SELECT d FROM Document AS d WHERE :user MEMBER OF d.accessors 

應該是你需要的,它比連接表更簡單。 只是不要忘記使用用戶作爲一個參數,而不是使用其ID:

query.setParameter("user", user); 
+0

這是正確的,JPQL方式,答案。 –

+1

如果我們在元素(d.accessors)中使用'..:user而不是'...:user MEMBER OF(d.accessors)'',會有什麼區別呢? – Manuel

+2

@曼努埃爾:[IN和會員的jpql運營商之間的區別是什麼](http://stackoverflow.com/questions/5915822/whats-the-difference-between-the-and-member-of-jpql-運營商) –

相關問題