Есть класс Предложение
, которое имеет необязательное отношение к классу Статья
. Так что некоторые свойства статьи предложений содержат значение 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'