У меня есть метод getAllEmployees (), который возвращает страницу.
Допустим, размер страницы равен 1 и начинается со страницы 0
Pageable pageable = PageRequest.of (0, 1 );
Page<String> allEmployees = service.getAllEmployeeNames(pageable)
while(true) {
for(String name: allEmployees.getContent()) {
// check whether the employee needs to be deleted or not based on certain conditions
boolean isDelete = service.checkEmployeeToBeDeleted()
if (isDelete)
EmployeeEntity entity = service.findByName(name);
service.delete(entity);
}
if (!page.hasNext()) {
break;
}
pageable = page.nextPageable();
}
- В этом сценарии все сотрудники не удаляются, только те, которые соответствуют условию, будут удалены
, поскольку размер страницы равен 1
Скажем, всего 6 сотрудников
emp pageable(pageNumber, pageSize)
1 (0 ,1)
2 (1 ,1)
3 (2 ,1)
4 (3 ,1)
5 (4 ,1)
6 (5 ,1)
, когда 1 будет удален, страница будет выглядеть как
2 (0 ,1)
3 (1 ,1)
4 (2 ,1)
5 (3 ,1)
6 (4 ,1)
, но поскольку мы go с page.nextPageable (), следующий будет быть как (1,1)
Итак, при следующей выборке он выберет emp 3, а emp 2 будет пропущен