У меня следующая структура сущности.
Venue -- n:1 -- Schedule -- 1:n -- Event
У меня есть запрос, чтобы получить количество всех расписаний в местах проведения:
SELECT v, count(s.event) FROM Venue v
LEFT JOIN i.schedule s
GROUP BY i.id ORDER BY count(s.event) asc;
Проблема в том, что этот запрос никогда не будет выводить места с нулевыми событиями. Проблема в Hibernate, который генерирует следующее:
select ..., count(schedule4_.event_id) as col_7_0_
from Venue venue0_
left outer join event_schedule schedule4_ on venue0_.id=schedule4_.venue_id,
Event event5_
where schedule4_.event_id=event5_.id and ...
Вы видите, что Hibernate пытается присоединиться к Event
на Schedule
, хотя я этого не просил. Очевидно, что если Schedule
не существует, объединение Event
не имеет никакого смысла.
(Я упростил запрос, если есть какая-то опечатка, это не должно иметь никакого влияния на проблему).