У меня странное поведение, которое я не могу понять, почему.
// Контроллер
@GetMapping(value = MasterURI.MST_AVAILABLE_BALANCE_DESCRIPTION+MasterURIAPI.GET_MST_AVAILABLE_BALANCE_DESCRIPTION_ALL)
@ApiOperation("Get list of unsorted all MstAvailableBalanceDescription")
public AppResponse<List<MstAvailableBalanceDescriptionResponseDto>> readAll(
@ApiParam(value = AdminURI.PAGENUMBER_OPTIONAL_MSG) @RequestParam(required = false, defaultValue = "0") Integer pageNumber,
@ApiParam(value = AdminURI.PAGESIZE_OPTIONAL_MSG) @RequestParam(required = false, defaultValue = ""+ Integer.MAX_VALUE) Integer pageSize) {
try {
MstAvailableBalanceDescriptionListResponseDto response = this.mstAvailableBalanceDescriptionService.readAll(pageNumber, pageSize);
return AppResponse.okList(response.getMstAvailableBalanceDescriptionListResponseDto(), pageSize, pageNumber,
response.getPagingResponseDto().getTotalRecords());
}catch (Exception e) {
return AppResponse.error(HttpStatus.BAD_REQUEST.toString(), e.getStackTrace()[0].getClassName(),
e.getStackTrace()[0].getMethodName(), e.getMessage());
}
}
// ServiceImpl
@Override
public MstAvailableBalanceDescriptionListResponseDto readAll(Integer pageNumber, Integer pageSize) throws ApplicationException {
List<MstAvailableBalanceDescriptionResponseDto> responseList = new ArrayList<>();
Pageable pageable = PageRequest.of(pageNumber, pageSize);
Page<MstAvailableBalanceDescription> data = this.mstAvailableBalanceDescriptionRepository.findAll(pageable);
data.getContent().forEach(item -> {
responseList.add(mstAvailableBalanceDescriptionResponseDtoBuilder.buildCreateResponseDto(item));
});
return MstAvailableBalanceDescriptionListResponseDto.builder()
.mstAvailableBalanceDescriptionListResponseDto(responseList)
.pagingResponseDto(PagingResponseDto.builder().pageNumber(data.getPageable().getPageNumber())
.pageSize(data.getPageable().getPageSize()).totalRecords(data.getTotalElements()).build())
.build();
}
// Репозиторий
Page<MstAvailableBalanceDescription> findAll(Pageable pageable);
У меня есть 2 примера данных в таблице для вызова API для запроса, v1 / master / available-balance-description? PageNumber = 0 & pageSize = 2147483647 Я получаю все доступные записи. для запроса v1 / master / available-balance-description? pageNumber = 1 & pageSize = 2147483647 и для всех нечетных чисел для "pageNumber" я получаю значение ниже
{
"data": [],
"meta": {
"code": 1,
"message": "Success"
},
"error": null,
"paging": {
"page_number": 1,
"page_size": 2147483647,
"total_records": 5
}
}
для v1 / master / available-balance-description ? pageNumber = 2 & pageSize = 2147483647 и для всех четных чисел для "pageNumber" я получаю значение ниже
{
"data": null,
"meta": {
"code": 0,
"message": "Error"
},
"error": {
"status": "400 BAD_REQUEST",
"source": "org.springframework.orm.jpa.EntityManagerFactoryUtils",
"title": "convertJpaAccessExceptionIfPossible",
"detail": "first-result value cannot be negative : -2; nested exception is java.lang.IllegalArgumentException: first-result value cannot be negative : -2"
},
"paging": null
}
Может кто-нибудь сказать мне, что я сделал неправильно. Заранее спасибо
Нихал