是否有可能做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的实体偏好具有PREFERENCESDISPLAY一个一对多的关系。 我想所有的喜好选择是否或不存在PREFERENCESDISPLAY参考。
在Hibernate中,你可以用“有”:
select ... from Preferences p left join p.displays d with d.user.id = 100
但在JPA我从来没有见过这样的可能性。
这是否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