Я пытаюсь объединить две таблицы, вывести их и отсортировать по алфавиту по двум полям, например order by coalesce(tableA.name, tableB.name)
(НЕ order by tableA.name, tableB.name
), поэтому результат должен выглядеть примерно так:
tableA.name tableB.name
A null
B null
null C
D null
null E
В простом видеSQL работает нормально, но когда я пытаюсь сделать это с помощью QueryDSL, он добавляет дополнительный столбец к сгенерированному оператору выбора и сортирует только по первому указанному столбцу:
//java code
query.orderBy(qTableA.name.coalesce(qTableB.name).asc());
//generated sql code
SELECT ...
COALESCE(tablea_.NAME, tableb_.NAME) AS col_9_0_
FROM ...
WHERE ...
ORDER BY tablea1_.NAME ASC
Может кто-нибудь сказать, почему он это делает, иМожно ли заставить его работать так, как я ожидаю?