2014-01-04 6 views
3

У меня такой домен: Страна имеет города, город имеет офисы, офисы имеют услуги. Мне нужно найти все страны с офисами, которые предоставляют указанный идентификатор службы. Моя текущая версия:Вложенные подзаголовки HQL

Итак, я новичок в HQL. Каков наилучший способ этого? Моя версия Хорошо? Я думал о SELECT DISTINCT с LEFT JOIN тоже.

ответ

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 
) 
Смежные вопросы