0

JPA QLでネストされた選択を行うことは可能ですか?

JPA QL で次の SQL ステートメントをどのように記述しますか?

select * from preferences p left outer join (select * from preferencesdisplay where user_id='XXXX') display on ap.pref_id=display.pref_id;

JPA エンティティPREFERENCESには、 PREFERENCESDISPLAYとの OneToMany 関係があります。PREFERENCESDISPLAY参照があるかどうかに関係なく、すべてのPREFERENCESを取得したいと考えています。

4

2 に答える 2

1

休止状態では、「with」を使用できます。

select ... from Preferences p left join p.displays d  with  d.user.id = 100

しかし、JPA では、そのような可能性を見たことがありません。

于 2009-09-08T19:47:00.467 に答える
0

そのSQLは機能しますか?

エンティティを表示すると役立ちますが、すべてが正しくマッピングされている場合は、次のように簡単に行うことができます。

select p from Preferences p left join p.preferencesDisplays pd with pd.userId =XXXX

または with がTopLinkでサポートされていない場合

select p from Preferences p left join p.preferencesDisplays pd
where pd IS NULL or pd.userId = XXXX
于 2009-09-08T18:23:20.170 に答える