Я использовал Spring Data Pageable для реализации подкачки и сортировки.Мой соответствующий фрагмент кода:
//GET API designed as POST due to Request Body, in lines of ES APIs
@PostMapping(value = "/v2")
public Page<ObjectDto> getObjects(@RequestBody @Valid Map<Integer, FilterRequestDto> filterDtoMap, Pageable pageable) {
Page<ObjectDto> objectDtos = myService.getDtos(filterDtoMap, pageable);
log.info(String.valueOf(objectDtos.getTotalElements()));
return objectDtos;
}
Хотя у меня есть данные (подтвержденные из журнала), вышеуказанный API отвечает {} .
Однако, когда я возвращаю List, как в следующем фрагменте:
@PostMapping(value = "/v2")
public List<ObjectDto> getObjects(@RequestBody @Valid Map<Integer,FilterRequestDto> filterDtoMap, Pageable pageable) {
Page<ObjectDto> objectDtos = myService.getDtos(filterDtoMap, pageable);
log.info(String.valueOf(objectDtos.getTotalElements()));
return objectDtos.getContent();
}
Ответ для типа возврата List для точно такого же API является правильным ответом, как и ожидалось:
[{"sellingPrice": 23000, "id": 1, "version": 1, "creationOn": "25 февраля 2019,05: 53", "lastUpdatedOn": "25 февраля 2019,05: 53"}]
Код репозитория:
@Repository
public interface MyObjectRepository extends JpaRepository<MyObject, Long>, JpaSpecificationExecutor<MyObject> {}
Сервисный код:
public Page<ObjectDto> getTyres(Map<Integer, FilterRequestDto> filterDtoMap, Pageable pageable) {
List<FilterDto> filterDtoList = filtersService.getAllFiltersById(filterDtoMap.keySet());
return objectMapper.toDto(myObjectRepository.findAll(ObjectSpecs.filter(filterDtoList, filterDtoMap), pageable));
}
Насколько я знаю, мы можем вернуть страницу как ответ API Restтак в чем тут проблема?Любая помощь будет высоко ценится.