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

정중한 개구리님의 프로필 이미지

작성한 질문수

실전! Querydsl

순수 JPA 리포지토리와 Querydsl

querydsl 의 offset 정의가 헷갈립니다.

24.07.02 23:38 작성

·

200

1

repository에 1,2,3,4,5를 차례로 저장하고

offset을 1로, limit을 2로해서 조회하면

 

[2,3], [4,5]가 조회되는건가요? 아니면 [3,4] ,[5]가 조회되는건가요?

 

offset이 0부터시작인데 1로 지정하면 2페이지부터 조회한다는건지? 두번째 데이터부터 페이징을 시작한다는건지요?

답변 2

0

codesweaver님의 프로필 이미지

2024. 07. 03. 09:32

안녕하세요. 정중한 개구리님, 공식 서포터즈 코즈위버입니다.

1, 2, 3, 4, 5 를 저장한 상태에서 offset 1, limit 2로 조회할 경우 [2,3]을 반환합니다.

offset 은 반환 시작점을, limit 는 offset으로 부터 몇 행을 반환하는가를 의미합니다.

만약 페이징 기능을 적용하실 경우 한 페이지당 몇 로우를 노출하고 있는지에 관한 값과 현재 몇번째 페이지를 보고 있는지를 알아야 합니다. 오프셋 구하는 방법은 보통 아래와 같습니다.

 

오프셋값 = (조회하려는페이지 - 1) * (한페이지당 게시물수)

 

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

2024. 07. 02. 23:41

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

정중한 개구리님의 질문에 대해, QueryDSL의 offsetlimit에 대한 사용 예제와 설명을 포함한 유사한 내용의 질문을 찾았습니다. 이 내용은 여러분의 offsetlimit에 대해 어떻게 데이터가 조회되는지에 대한 이해를 도울 수 있습니다.

offset은 조회를 시작할 위치를 의미하며, limit은 쿼리 결과로 반환할 최대 행 수를 지정합니다. offset이 1로 설정되면, 첫 번째 행을 건너뛰고 두 번째 행부터 데이터를 조회하게 됩니다. 따라서 offset을 1로 하고 limit을 2로 설정한다면, 결과적으로 두 번째와 세 번째 데이터[2, 3]가 조회됩니다. 마찬가지로, 만약 더 많은 데이터가 있고 추가로 limit을 구분하여 조회한다면, 다음으로 [4, 5]가 조회됩니다. 즉, offset이 0부터 시작한다고 할 때, 1로 설정하면 실질적으로 데이터 조회는 두 번째 데이터부터 시작한다고 이해하시면 됩니다.

다음은 이와 관련된 유사한 내용을 포함한 질문들의 링크입니다:
- Querydsl(JPA) 질문 에 대한 답변에서 offset과 limit 사용에 대한 설명offsetlimit을 적용한 예제를 통해 질문자가 이해를 돕는 상세한 답변을 제공합니다.

여기의 답변을 통해 확인하실 수 있으며, offset이 1로 설정될 때 조회되는 데이터 셋에 대해 상세히 설명하고 있습니다. 이 답변이 여러분의 질문에 대한 이해를 돕고, offsetlimit 사용법에 대한 명확한 인사이트를 제공할 것입니다.

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