인프런 커뮤니티 질문&답변

rnqhstlr2297님의 프로필 이미지
rnqhstlr2297

작성한 질문수

실전! 스프링 데이터 JPA

스프링 데이터 JPA의 구현체 질문

작성

·

282

·

수정됨

0

안녕하세요 김영환 강사님 항상 잘 듣고 있습니다. 다름이 아니라 스프링 데이터 JPA의 구현체 분석 파트 중 질문 사항이 있습니다.

페이징에 대해서 처리할 때 마지막 파라미터로 Pageable 를 넘기게 되면 해당 정보로 자동으로 페이징 처리를 하게 된다고 알고 있습니다.

어떻게 이게 가능한 것입니까? 이를 구현한 구현체를 찾아보려 하지만 찾지 못해 질문드립니다.!

 

 

답변 1

2

안녕하세요. rnqhstlr2297님, 공식 서포터즈 David입니다.

SimpleJpaRepository.findAll 중 Pageable이 포함된 것을 찾아보시면, readPage()를 호출하고 있습니다. 이 부분을 살펴보시면 궁금하신 부분을 해소할 수 있을 것 같습니다.

감사합니다.

rnqhstlr2297님의 프로필 이미지
rnqhstlr2297
질문자

답변 감사드립니다. 쿼리메소드나, Named Query 방식을 사용할 때 전달 파라미터 마지막에 Pageable를 넘기게 되면 페이징을 처리해주게 되는데 이러한 상황에서는 어떤 방식으로 동작하길래 가능한것입니까? SimpleJpaRepository에는 공통 인터페이스의 대한 구현체만 존재하지 않나요?

QueryMethod 클래스를 보시면, method(Repository에 정의한 쿼리 메서드) 정보를 통해 메서드의 파라미터에 Pageable 타입을 가지는 파라미터가 있는지 확인합니다. NamedQuery 클래스도 동일한 방법으로 Pageable 파라미터 존재 여부를 감지하고요.

 

rnqhstlr2297님의 프로필 이미지
rnqhstlr2297

작성한 질문수

질문하기