【发布时间】:2011-08-04 06:25:08
【问题描述】:
我有 2 个表(实体)一个人实体和一个假期实体。一个人可以有很多假期。
我想要做的是以下查询:
选择所有人的期间!但是对于有假期的人,我想获取所有有条件的人的假期,以免说startDate介于两者之间。
只是要明确一点,无论假期有什么限制,我仍然希望得到所有的人。这是我当前的 HQL 查询:
select distinct p
from Person as p
left join fetch p.vacations as v
where v.startDate between '2011-07-01' and '2011-07-30'
它的问题是它限制我的人只返回那些尊重条件的假期......有人可以帮忙吗?
如果有人可以用本机 SQL 告诉我,我没有问题
感谢@Quasdunk,在本机 SQL 中解决了更新问题:
SELECT *
FROM person as p
LEFT JOIN
(SELECT * FROM vacation
WHERE startDate BETWEEN '2011-08-01' AND '2011-08-30') as v ON v.person_id = p.id
我的新问题是如何将其转换为 HQL 查询,以便我可以获取每个人的假期以及要区分的人(条件保持不变)。
【问题讨论】: