【发布时间】:2014-01-04 10:55:46
【问题描述】:
我有这样的域:国家有城市,城市有办公室,办公室有服务。我需要找到所有设有提供指定服务 ID 的办事处的国家/地区。我目前的版本是:
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。
【问题讨论】: