2011-12-01 8 views

risposta

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

si dovrebbe imparare SQL unisce il lavoro, e quindi imparare ad usare si unisce JPQL. Questo è essenziale. Troverete un sacco di tutorial online. Google è tuo amico.

+0

@ user1071828 si suppone di fare clic sul segno di spunta per indicare che è stata la risposta giusta ;-) – fommil

+0

può si prega di controllare questa domanda ? http://stackoverflow.com/questions/12051559/jpa-join-fetch-query-with-many-to-many – Panos

+0

Per favore, NON dimenticare il distinto. Non riuscivo a capire perché stavo finendo con entità duplicate: ') – Jelle

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

Dovrebbe essere quello che ti serve, ed è più semplice di unire tabelle. Basta non dimenticare di utilizzare l'utente come un parametro invece di usare il suo id:

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

Questa è la risposta corretta, in JPQL,. –

+1

Quale sarebbe la differenza se usassimo '..: user in elements (d.accessors)' invece di '...: user MEMBER OF (d.accessors)'? – Manuel

+2

@Manuel: [Qual è la differenza tra gli operatori IN e MEMBER OF jpql] (http://stackoverflow.com/questions/5915822/whats-the-difference-tra i-in-and-member-of-jpql- operatori) –

Problemi correlati