Как включить 2 страницы в одном методе? - PullRequest
0 голосов
/ 17 октября 2019

Я использую Oracle Db, Hibernate и Spring данных JPA. Я пытаюсь реализовать весенний пакетный раздел.

У меня есть требование, которое включает в себя 2 разбивки на страницы. Я сделаю первый раздел, затем внутри каждого раздела мне нужно снова выполнить разбиение на страницы, чтобы я не загружал весь блок разделов сразу.

Допустим, у нас есть 10000 записей данных. Во-первых, мне нужно будет разбить его на 10 частей, что является первой нумерацией страниц. Затем для этих отдельных фрагментов мне нужно сделать еще одну нумерацию страниц, чтобы обработать этот фрагмент. Каждый блок будет иметь 1000 записей, повторное разбиение на страницы приведет к 100 на страницу.

Мой вопрос: есть ли способ добиться такого поведения? Spring data jpa позволяет только 1 страницу в состоянии.

Нужны линии гильдии. Я на правильном пути?

1 Ответ

0 голосов
/ 18 октября 2019

Я вижу путаницу между терминами "section", "page" и "chunk", поэтому позвольте мне прояснить терминологию со стороны Spring Batch, используя ваш пример:

Если у вас есть 10.000 записей для обработки витого, вы можете использовать раздел с разделами Spring Batch с 10 разделами (которые вы назвали «чанк»). Каждый раздел будет состоять из 1000 записей.

Теперь в каждом разделе размер порции является ключевым. При размере фрагмента 100 каждый раздел будет разделен на 10 фрагментов (т.е. 10 транзакций для одного раздела).

Теперь для каждого фрагмента из 100 элементов размер страницы является ключевым,Если вы установите размер страницы 10, ваш читатель сделает 10 операций чтения, чтобы создать чанк. Как правило, для лучшей производительности рекомендуется, чтобы размер страницы соответствовал размеру чанка .

Таким образом, в сумме, чтобы ответить на ваш вопрос, не нужно делать 2 нумерации страниц. То, что вы называете «первой пагинацией», на самом деле представляет собой процесс разбиения шага, а то, что вы называете «второй пагинацией», представляет собой модель обработки фрагментов Spring Batch в сочетании с устройством чтения элементов подкачки вкаждый раздел .

...