Pagination and Sorting in SpringBoot RESTful Web Services
Follow this tutorial
http://appsdeveloperblog.com/rest-pagination-tutorial-with-spring-mvc/
https://dzone.com/articles/conditional-pagination-and-sorting-using-restful-w
Step 1: Dao Layer extends PagingAndSortingRepository
Step 3: Controller layer
http://appsdeveloperblog.com/rest-pagination-tutorial-with-spring-mvc/
https://dzone.com/articles/conditional-pagination-and-sorting-using-restful-w
Step 1: Dao Layer extends PagingAndSortingRepository
@Repository public interface PaginationDao extends PagingAndSortingRepository<PagingEntity, Integer> { }Step 2: Service Layer
@Service public class PaginationService { @Autowired private PaginationDao paginationDao; public PagefindJsonDataByCondition(String orderBy, String direction, int page, int size) { Sort sort = null; if (direction.equals("ASC")) { sort = new Sort(new Sort.Order(Direction.ASC, orderBy)); } if (direction.equals("DESC")) { sort = new Sort(new Sort.Order(Direction.DESC, orderBy)); } Pageable pageable = new PageRequest(page, size, sort); Page data = paginationDao.findAll(pageable); return data; } }
Step 3: Controller layer
@RestController @RequestMapping(value = "/pagination") public class PaginationController { @Autowired private PaginationService paginationService; @RequestMapping(value = "/conditionalPagination", params = { "orderBy", "direction", "page", "size" }, method = RequestMethod.GET) @ResponseBody public PagefindJsonDataByPageAndSize(@RequestParam("orderBy") String orderBy, @RequestParam("direction") String direction, @RequestParam("page") int page, @RequestParam("size") int size) { if (!(direction.equals(Direction.ASCENDING.getDirectionCode()) || direction.equals(Direction.DESCENDING.getDirectionCode()))) { throw new PaginationSortingException("Invalid sort direction"); } if (!(orderBy.equals(OrderBy.ID.getOrderByCode()) || orderBy.equals(OrderBy.USERID.getOrderByCode()))) { throw new PaginationSortingException("Invalid orderBy condition"); } Page list = paginationService.findJsonDataByCondition(orderBy, direction, page, size); return list; } }
Comments
Post a Comment