Существует класс Offer
, который имеет необязательное отношение к классу Article
.Так что в некоторых предложениях свойство article содержит значение null
.
Если я использую следующее утверждение, все работает нормально.Я получил все предложения, даже те, у которых нет статьи.
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR a.nummer = '123456'
Если я изменил утверждение на:
SELECT o FROM Offer o
LEFT OUTER JOIN o.article a
LEFT OUTER JOIN o.vendor v
WHERE v.number = '0212' OR o.article.nummer = '123456'
, я получил только эти предложения, в которых статьи отличались от NULL
.Это связано с тем, что нотация для неявных объединений (o.article.nummer
) вызывает внутреннее объединение.
Существует ли возможность принудительного включения левых внешних объединений в неявные объединения (управляемые аннотациями или что-то еще)?Если есть возможность, я мог бы использовать короткую форму, например, такую:
SELECT o FROM Offer o
WHERE v.number = '0212' OR o.article.nummer = '123456'