是否可以在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 参考。
答案 0 :(得分:1)
在休眠状态下,您可以使用“with”:
select ... from Preferences p left join p.displays d with d.user.id = 100
但是在JPA中,我从未见过这种可能性。
答案 1 :(得分:0)
该SQL是否有效?
如果你展示了你的实体会有所帮助,但如果你已经正确映射了所有内容,那么应该很容易:
select p from Preferences p left join p.preferencesDisplays pd with pd.userId =XXXX
或如果TopLink不支持
select p from Preferences p left join p.preferencesDisplays pd
where pd IS NULL or pd.userId = XXXX