2011-07-24 1 views
0

私はOneToMany JoinテーブルにアクセスするJPQLにlttlの複雑なクエリを書きたいと思っています。私はQuerySyntaxExceptionを取得します:Pan_PanResはマップされていません。JPQLでOnetoMany結合テーブルにアクセスするには?

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" 

私はMYSQLにこの概念を実装してみました。それはうまく動作します。だから、私は正しい方法で結合テーブルを呼んでいないことを知っている。どのようにそれを呼び出されるべきですか?

私は正常に動作MYSQL文を追加したい -

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)); 

おかげで...

+0

'SELECT p FROM Pan p WHERE p.id INとp.id NOT IN ... 'は有効な構文ではないようです。 –

答えて

2

はそれを自分で解決 -

panResは私が持っているoneToMany変数名です
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" 

をパンクラスで使用されます。

関連する問題