Spring Data JPA срез, лежащий в основе SQL - PullRequest
4 голосов
/ 16 мая 2019

Я читал этот параграф в официальной документации Spring Data JPA о разнице между Page и Slice (выделено мое):

Первый метод позволяет передать org.springframework.data.domain.Pageable экземпляр метода запроса для динамического добавления подкачки к статически определенному запросу.Страница знает об общем количестве доступных элементов и страниц.Это происходит благодаря инфраструктуре, запускающей запрос подсчета для вычисления общего числа. Поскольку это может быть дорого (в зависимости от используемого магазина), вы можете вместо этого вернуть ломтик.Срез знает только о том, доступен ли следующий срез, что может быть достаточно при просмотре большого набора результатов.

Я понял, как Page может получить общее количество элементов путемвыполнение дополнительного запроса подсчета с тем же предложением where, но как Slice узнает, доступны ли другие элементы в одном запросе или нет?Какой SQL выполняется?

1 Ответ

2 голосов
/ 17 мая 2019

Как Slice узнает, доступны ли другие элементы с помощью одного запроса?

Spring Data JPA выбирает на один элемент больше, чем фактически необходимо для заполнения Sliceесли этот дополнительный элемент присутствует, имеется еще один Slice.Если нет, то это последний Slice.

См. Код .

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