2
我有一個以下的實體結構。JPQL(與休眠)添加字段查詢,這是不希望的
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
沒有任何意義。
(我簡化了查詢,如果有錯別字,它不應該對問題有任何影響)。
我已經嘗試過 - 它只是增加了'左外連接上schedule4_.event_id = event5_.id事件event5_,事件event6_',但其餘查詢是一樣的。 – 2012-03-14 11:32:58
確保你用'count(e.id)'替換'count(s.event)',如上所示。如果不在查詢中使用任何隱式聯接,我不明白爲什麼它會在from子句中添加此附加表。 – 2012-03-14 12:26:36
輝煌,謝謝! – 2012-03-14 15:47:05