HQL - 带有多对多关联子查询的IN子句

时间:2015-07-16 15:01:52

标签: java hibernate

我试图让这个查询运行

FROM Resource rs WHERE rs NOT IN (SELECT r.resources FROM Reservation r)

但是Hibernate会生成导致SQL语法异常的SQL代码。

如何在不手动编写SQL代码的情况下避免这种情况?

更新

我现在正在使用的解决方法是首先查询所有预订中的资源

SELECT r.resources FROM Reservation r

然后应用第二个查询

FROM Resource rs WHERE rs NOT IN (:resources_in_reservations)

感觉对我来说是不必要的一步,但我不知道如何避免它。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用右外连接:

select rs 
from Reservation r right join r.resources rs
where r is null