Spring данные сортируют страницу по одному свойству, ранее отсортированному по другому - PullRequest
0 голосов
/ 21 февраля 2019

Допустим, у меня есть сотрудник таблицы (со столбцами идентификатора и имени следующим образом):

|---------------------|------------------|
|         id          |       name       |
|---------------------|------------------|
|          12         |      adrian      |
|---------------------|------------------|
|          5          |       anne       |
|---------------------|------------------|
|          9          |       bryce      |
|---------------------|------------------|
|          10         |       burns      |
|---------------------|------------------|
|          1          |      charles     |
|---------------------|------------------|
|          2          |       clyde      |
|---------------------|------------------|

Я хочу создать страницу, например, с размером 3, и мне нужна страница результатовбудет заказан сначала по id, а затем по name.

Суть в том, что если я использую следующий запрос:

employeeRepository.findAll(PageRequest.of(0, 3, Sort.by("name").ascending().and(Sort.by("id").ascending()))

Не переупорядочивает результат страницы поid просто сохраняет порядок имен.

Я пробовал с этим, сначала упорядочивая данные пружин (OrderByName) и запрос страницы:

employeeRepository.findAllByOrderByName(PageRequest.of(page, size, Sort.by("id").ascending()));

Но я всегда получаю следующий результат:

Страница 1

|---------------------|------------------|
|         id          |       name       |
|---------------------|------------------|
|          12         |      adrian      |
|---------------------|------------------|
|          5          |       anne       |
|---------------------|------------------|
|          9          |       bryce      |
|---------------------|------------------|

Страница 2

|---------------------|------------------|
|         id          |       name       |
|---------------------|------------------|
|          10         |       burns      |
|---------------------|------------------|
|          1          |      charles     |
|---------------------|------------------|
|          2          |       clyde      |
|---------------------|------------------|

Но мне нужен следующий результат:

Страница 1

|---------------------|------------------|
|         id          |       name       |
|---------------------|------------------|
|          5          |      anne        |
|---------------------|------------------|
|          9          |       bryce      |
|---------------------|------------------|
|          12         |      adrian      |
|---------------------|------------------|

Page 2

|---------------------|------------------|
|         id          |       name       |
|---------------------|------------------|
|          1          |      charles     |
|---------------------|------------------|
|          2          |       clyde      |
|---------------------|------------------|
|          10         |       burns      |
|---------------------|------------------|

Обратите внимание, что каждая страница переупорядочена по id, но сохраняется первый порядок по имени.

Есть ли способ сделать это, просто используя Page и Sort илинеобходим пост-процесс результата страницы?

Есть идеи?

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