Заказ HQL по обнуляемому ManyToOne - PullRequest
0 голосов
/ 26 мая 2020

Предполагая следующую схему:

public class Foo {
    @ManyToOne
    private Bar bar;
}

public class Bar {
    @Column
    private int baz;
}

У меня есть запрос Hibernate, сгенерированный фреймворком, который выглядит следующим образом:

SELECT Foo.*
FROM Foo
ORDER BY Foo.bar.baz

Проблема в том, что Foo.bar имеет значение null Foo не будет частью результата, потому что Hibernate сгенерирует SQL INNER JOIN для доступа Foo.bar. Как я могу заставить Hibernate использовать левое соединение или иным образом включать результаты с нулевым значением bar?

Обратите внимание, что я не могу сделать левое соединение на Foo.bar в HQL. HQL ORDER BY генерируется фреймворком и всегда начинается с ORDER BY Foo.. Я не могу это изменить. Это невозможно.

Все, что я могу изменить в ORDER BY, это часть bar.baz.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...