Я пытаюсь заказать запрос querydsl так, чтобы сначала были упорядочены все сущности с нулевым значением для отношения, но я не могу понять, как это сделать.
Я ожидал:
query.orderBy(
QBook.book.original.isNull().asc()
)
Чтобы быть тем, что мне нужно, где original
- это самореферентные отношения с Book
.
Но это вызывает исключение:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: is null
[select book
from com.mydomain.Book book
order by book.original is null asc]
(Настоящее исключение намного длиннее, но это должна быть вся соответствующая информация.)
Я также пробовал
QBook.book.original.name.asc().nullsFirst()
Но здесь есть две проблемы. Во-первых, он удаляет все книги без original
, и даже если это не так, он будет сортировать их по имени, когда я хочу, чтобы они отсортировывались только по тому, является ли это значение нулевым.
Версия гибернации: 3.6.6.Final
Версия QueryDSL: 3.2.3