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

rnqhstlr2297님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

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

23.03.08 00:48 작성

·

279

·

수정됨

0

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

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

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

 

 

답변 1

2

David님의 프로필 이미지

2023. 03. 10. 09:50

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

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

감사합니다.

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

2023. 03. 10. 16:31

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

David님의 프로필 이미지

2023. 03. 10. 19:50

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