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

或者如果 TopLink 不支持 with

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