인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

cowldnd123님의 프로필 이미지
cowldnd123

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

페이징관련해서 질문 있습니다

작성

·

35

0

페이징관련해서 오라클에서 원래 엄청 힘들게 쿼리를 짜는 걸 쉽게 바뀌어 이제 setFist , setMax 값만

신경쓰면 된다고 하셧는데 그럼 궁금한 점이 만약에 게시판 같은거 만들 때 페이징 처리를 어떻게 하는지 궁금합니다 그거 관련된 내용이 로드맵에 있나요?

답변 2

0

안녕하세요. cowldnd123님, 공식 서포터즈 코즈위버입니다.

페이징을 계산하기 위해선 고객이 보고 있는 페이지(=현재페이지)와 페이지당 표시해야하는 게시물의 수(=게시글수)가 필요합니다. 그리고 offset(setFirst에 사용할 값)과 limit(setMax에 사용할 값)를 구하는 공식은 아래와 같습니다.

 

offset = (현재페이지 - 1) * 게시글수

limit = 게시글수

 

게시글 수가 20이고, 1페이지일 경우

offset = (1-1) * 20 = 0

limit = 20

 

2페이지일 경우

offset = (2-1) * 20 = 20

limit = 20

 

이런식으로 계산한 값을 setFirst()와 setMax()에 할당하여 페이징 처리를 합니다.

페이징을 좀 더 간편하게 처리하기 위한 방법은 AI의 답변처럼 Pageable 객체를 참고하여 주세요.

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다. cowldnd123님.

페이징 처리를 효율적으로 구현하는 방법은 데이터베이스나 ORM 툴에 따라 다양한 방법이 있습니다. 예전에는 오라클에서 페이징 쿼리를 작성하기가 다소 복잡했으나, 이제는 setFirstResultsetMaxResults 같은 JPA의 기능 덕분에 비교적 쉽게 구현할 수 있습니다. JPA를 사용하면 기본적으로 페이징 처리가 가능하며, Pageable 인터페이스를 활용하여 페이징과 정렬 기능을 구현할 수 있습니다.

JPA에서의 페이징 처리 요약:

  • PageablePage 인터페이스 사용: 주로 리파지토리 메서드에서 Pageable 객체를 인자로 받아 페이징 기능을 사용합니다.
  • 쿼리 메서드 활용: Page<T>를 반환하는 메서드를 통해 데이터베이스에서 필요한 페이지만 쿼리하여 가져옵니다.
  • Paging and Sorting Repository: JPA의 페이징 및 정렬 기능을 활용하면 추가적인 코드 작성 없이도 간단히 페이징 기능을 구현할 수 있습니다.

질문하신 내용은 강의나 로드맵에서 기본적인 JPA 페이징에 대한 설명과 가이드를 제공할 가능성이 큽니다. 일반적으로 실전에서 게시판과 같은 시스템에 이러한 페이징 처리가 어떻게 적용되는지 설명하는 경우가 많습니다.

참고할 수 있는 링크

강의를 통해 제공될 설계 참고 자료 및 예제 코드도 확인해 보시면 큰 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

cowldnd123님의 프로필 이미지
cowldnd123

작성한 질문수

질문하기