Hibernate / JPA: Как заставить неявные соединения использовать ЛЕВЫЕ ВНЕШНИЕ СОЕДИНЕНИЯ

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