2011-07-24 5 views
0

Je veux écrire une requête lttl compliquée dans JPQL où j'accède à une table OneToMany Join. J'obtiens QuerySyntaxException: Pan_PanRes n'est pas mappé.Comment accéder à une table de jointure OnetoMany dans JPQL?

QUERY -

query = "SELECT p FROM Pan p WHERE p.id IN " + 
      "(SELECT p_id FROM Pan_PanRes p_prs WHERE prs_id IN " + 
      "(SELECT r.id FROM PRS r where r.pant = :pant))"+      
      " ORDER BY pr.clD" 

j'ai essayé la mise en œuvre de ce concept dans MYSQL. Ça fonctionne bien. Donc je sais que je n'appelle pas la table de jointure correctement. Comment devrait-il être appelé alors?

Je voudrais ajouter une commande normale qui fonctionne bien -

mysql> select * from pan where id not in 
(select pan_id from pan_panres where panres_id in 
(select id from panres where pant_id = 3)); 

Merci ...

+0

'SELECT p À partir de Pan p WHERE p.id IN et p.id NOT IN ...' ne semble pas être une syntaxe valide. –

Répondre

2

résolu le problème moi-même -

query = "SELECT p FROM Pan p WHERE p.id IN " + 
      "(SELECT p.id FROM p.panRes prs WHERE id IN " + 
      "(SELECT r.id FROM PanRes r where r.pant = :pant))"+      
      " ORDER BY pr.clD" 

panRes est le nom de la variable OneToMany j'ai utilisé dans Pan Class.

Questions connexes