Делайте NULLS ПЕРВЫМ при сортировке по возрастанию из PostgreSQL. Весенние данные JPA ⇐ JAVA

Программисты JAVA общаются здесь
Гость
Делайте NULLS ПЕРВЫМ при сортировке по возрастанию из PostgreSQL. Весенние данные JPA

Сообщение Гость »


У меня проблема с сортировкой данных из PostgreSQL.

Я сортирую данные из БД, используя PagingAndSortingRepository. Код показан ниже:

Listorders = new ArrayList(); orders.add(Sort.Order.asc(s.getField())); Сортировка sort = Sort.by(заказы); Pageable pageSort = PageRequest.of(pageNumber,pageSize, sort); List результаты = репозиторий.findAll(pageSort); В результате я отсортировал данные, но данные со значениями NULL идут последними, хотя я предпочитаю, чтобы они были первыми.

Я бы хотел, чтобы NULL-значения шли первыми при сортировке по возрастанию и последними при сортировке по убыванию.

Но PostgreSQL по умолчанию помещает NULLS в конец при сортировке по возрастанию и в начало при сортировке по убыванию.

Я пытался использовать

new Sort.Order(Sort.Direction.ASC, s.getField(), Sort.NullHandling.NULLS_FIRST) но похоже, что свойство NULLS_FIRST игнорируется в сгенерированном запросе:

выберите сгенерированный псевдоним0 из таблицы как сгенерированныйAlias0 порядок по созданномуAlias0.targetField по возрастанию Как видите, о NULL ORDERING не упоминается.

Знаете ли вы другой способ решить мою проблему?

Обратите внимание, что я спрашиваю не о скрипте pg, а о том, как я могу решить проблему с помощью Java-кода.

Вернуться в «JAVA»