| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- crud
- 국비지원교육
- Spring
- Entity
- Sts
- Java
- MegabyteSchool
- array
- tomcat
- AWS
- MVC
- 내일배움카드
- MVC 패턴
- 클래스 class
- side project
- 개발자취업부트캠프
- Algorism study
- 패스트캠퍼스
- #javaStudy
- spring boot
- View
- github
- group study
- 게시판 만들기
- Interface
- 메가바이트스쿨
- 클래스 상속
- 게시판 리뷰 만들기
- GIT
- #패스트캠퍼스 #국비지원교육 #메가바이트스쿨 #MegabyteSchool #개발자취업부트캠프 #내일배움카드
- Today
- Total
tuter77
게시판 만들기(3) 본문
● JPA기반 게시판 만들기.
▷ 게시판 페이징 처리 작업.
@Override
public Page<Board> boardlist(int page){
return boardRepository.findAll(PageRequest.of(page, 10, Sort.by(Sort.Direction.DESC, "id")));
}
servicelmpl 파일에 위와 같은 기능을 추가했다.
이 기능은 page를 매개변수로 받는 boardList에 findAll()메서드를 사용하여 boardRepo 저장소에서 페이지를 찾아 반환해주는 기능을 가졌다.
Sort.by를 이용하여 페이지는 10개씩 나오고, id값을 기준으로 내림차순 정렬하는 방식을 선택했다.
이 기능을 구현하기 위해 공부한 것이, @PageableDefault, pageable, pageable의 하위 클래스인 pageRequest 등이었다.
아래는 해당 공부에 대한 간단히 정리한 내용이다.
▷ @PageableDefault
@PageableDefault 는 Spring MVC 컨트롤러에서 Pageable 요청 매개변수에 대한 기본값을 지정하는 데 사용할 수 있는 Spring Data 웹 지원 라이브러리의 주석이다.
페이지의 기본 크기, 기본 페이지 번호 및 결과의 기본 정렬 순서를 지정할 수 있는데, 예제를 통해보면 아래와같다.
@GetMapping("/items")
public Page<Item> getItems(@PageableDefault(size = 20, page = 0, sort = "name", direction = Sort.Direction.ASC) Pageable pageable) {
return itemService.getItems(pageable);
}
이 예제에서 메서드는 주석 getItems()에 지정된 기본값을 사용하여 생성된 Pageable 개체를 인수로 허용한다 . @PageableDefault기본 페이지 크기는 20이고 기본 페이지 번호는 0(첫 번째 페이지)이며 기본 정렬 순서는 "이름" 속성에 따른 오름차순이다.
클라이언트가 페이지 매김 또는 정렬 매개변수를 지정하지 않고 이 끝점에 요청하면 서버는 페이지 크기가 20인 결과의 첫 번째 페이지를 "id" 속성에 따라 오름차순으로 정렬하여 반환한다.
요청 쿼리 문자열에서 페이지 매김 및 정렬 매개변수에 다른 값을 지정하여 기본값을 재정의할 수도 있는데,
예를 들어 페이지 크기가 10이고 "가격" 속성별로 내림차순으로 정렬된 결과의 두 번째 페이지를 요청하려면 다음과 같이 요청할 수 있다.
GET /items?page=1&size=10&sort=price,desc
위 내용은 2022.12.29에 공부한 내용입니다.
'GroupStudy' 카테고리의 다른 글
| 게시판 만들기(5) - review 엔티티 만들기. (0) | 2023.01.29 |
|---|---|
| 게시판 만들기(4) - 데이터를 입력하여 CRUD구현. (0) | 2023.01.29 |
| 게시판 만들기 : ManyToOne 조사 (0) | 2023.01.29 |
| 게시판 만들기(2) (0) | 2023.01.29 |
| 게시판 만들기(1) (0) | 2023.01.29 |