SELECT c FROM Country c
WHERE EXISTS(
SELECT ct FROM c.cities ct
WHERE EXISTS(
SELECT o FROM ct.offices o
WHERE EXISTS(
SELECT s.id FROM o.services s
WHERE s.id = :id
)
)
)
所以,我是HQL的新手。什么是最好的方法?我的版本好吗?我也在考虑SELECT DISTINCT
和LEFT JOIN
。
答案 0 :(得分:2)
我认为您的查询没有任何问题,但这可能更具可读性。
SELECT c FROM Country
WHERE EXISTS (
SELECT s.id FROM
c.cities ct
JOIN ct.offices o
JOIN o.services s
WHERE s.id = :id
)