작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
564
·
수정됨
0
PageRequest pageRequest = PageRequest.of(0, 3, Sort.by(Direction.DESC, "username"));
int age = 10;
//when
Page<Member> page = memberRepository.findByAge(age, pageRequest);
PageRequest.of 코드에서 첫 번째 파라미터가 무엇을 의미하는지 헷갈립니다.
PageRequest.of 의 2번째 파라미터는 한 페이지의 element 개수이고(limit), 3번째 파라미터는 정렬 조건이 맞나요?
List<Member> content = page.getContent();
assertThat(content.size()).isEqualTo(3);
assertThat(page.getTotalElements()).isEqualTo(5);
assertThat(page.getNumber()).isEqualTo(0);
assertThat(page.getTotalPages()).isEqualTo(2);
assertThat(page.isFirst()).isTrue();
assertThat(page.hasNext()).isTrue();
page.getContent()는 현재 페이지의 데이터를 가져오는 메소드인가요?
page.getNumber()는 현재 페이지를 가져오는 메소드인가요?
Page는 책처럼 0,1,2,3 ... 이렇게 페이지가 있는 거고
Content는 그 Page안에 있는 데이터를 의미하는 건가요? List<List<data>> 와 같은 구조로 되어 있는 것일까요? Page와 Content의 자료 구조가 어떻게 되어있는지가 궁금합니다.
답변 1
0
안녕하세요. hjemsti님, 공식 서포터즈 David입니다.
PageRequest.of 코드에서 첫 번째 파라미터가 무엇을 의미하는지 헷갈립니다.
=> 페이지의 인덱스를 말합니다. 즉, 페이지의 번호라고 볼 수 있습니다.
PageRequest.of 의 2번째 파라미터는 한 페이지의 element 개수이고(limit), 3번째 파라미터는 정렬 조건이 맞나요?
=> 네, 맞습니다.
page.getContent()는 현재 페이지의 데이터를 가져오는 메소드인가요?
=> 네, 맞습니다.
page.getNumber()는 현재 페이지를 가져오는 메소드인가요?
=> 현재 페이지 번호를 가져옵니다.
Page의 구현체는 PageImpl 클래스입니다. 해당 클래스쪽 코드를 살펴보시면 대략적으로 어떤 느낌인지 아실 수 있을 것 같습니다. 아래 2가지 클래스 코드를 참고해 주세요.
https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/domain/PageImpl.java
https://github.com/spring-projects/spring-data-commons/blob/main/src/main/java/org/springframework/data/domain/Chunk.java
아울러, 1~4번 질문의 경우 5분 36초부터 설명하고 있으니 확인 부탁드립니다:)
감사합니다.