게시판이나 댓글, 블로그를 개발할 때 페이징은 아주 중요한 역할을 한다. 페이징은 많은 정보, 이를테면 게시판에 존재하는 수백 수천개의 게시글과 같은 정보들을 페이지로 나눠 효과적으로 정보를 제공하게 하는 역할을 한다. 페이징이러한 페이징을 개발하기 위해서는 page 관련 쿼리를 파라미터로 받아서 직접 처리하는 방법이 있었지만 JPA 에서 또 Spring Data 프로젝트에서는 효과적으로 페이징을 처리할 수 있게 방법을 제공한다. Spring Data JPA 에서의 페이징과 정렬Spring Data JPA 에서는 앞서 말 했듯 페이징과 정렬에 아주 강력한 방법을 제공한다. 지난 시간에 봤던
결국 우리는 한 번 사용해보자. 이번에는 controller 를 만들어서 사용해보자.
쉽게 Paging 을 위한 정보를 넘길 수 있는데, 이 정보에는 정렬 정보, 페이지 offset, page와 같은 정보가 담겨있다.
initializing() 을 이용해서 100명의 데이터를 추가해주고 api 호출을 해보자.
결과를 봐보자.
이와 같이 Paging 이 적용된 응답을 받을 수 있다.
멋지다. 하지만 더 멋진 것은 쿼리 메서드 기능에서도 제공한다는 것이다.쿼리 메서드에서 페이징 사용하기
이렇게 사용자의 주소로
조회하는 쿼리 메서드를 만들고 두 번째 파라미터로 그리고 컨트롤러에 가서 다시 이번에는 더 나아가 쿼리 파라미터로 넘어온 값을 페이지 정보로 만들어 볼 것이다.
이렇게 만들고
반환 타입에 따른 페이징 결과Spring Data JPA 에는 반환 타입에 따라서 각기 다른 결과를 제공한다.
각자 다른 결과를 반환해준다. Page<T> 타입
여기서 중요한 정보는 총 페이지 수 이다. 그 정보를 포함하여 반환한다.
|