Выбор ответа Middle Spring Data JPA обновлено

Page и Slice

Вопрос

Чем Slice<T> отличается от Page<T> в Spring Data?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Slice не делает count-запрос и знает только о следующей. Для Page Spring Data выполняет дополнительный select count() ради общего количества и числа страниц, на больших таблицах это дорого.

Варианты ответа

  1. Slice загружает все записи, а потом режет их в памяти
  2. Slice не делает count-запрос и знает только о следующейправильный ответ
  3. Page не поддерживает сортировку, только смещение и размер страницы
  4. Slice работает только с native-запросами в @Query

Разбор

Для Page Spring Data выполняет дополнительный select count(*) ради общего количества и числа страниц, на больших таблицах это дорого. Slice запрашивает на одну запись больше размера страницы, чтобы понять, есть ли продолжение. Оба делают пагинацию в базе и поддерживают сортировку.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.