inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

컨트롤러의 파라미터로 Pageable를 직접 받을까요 혹은 page, size, sort등을 따로 받을까요?

해결된 질문

644

자프링

작성한 질문수 7

0

안녕하세요!

컨트롤러의 파라미터로 Pageable을 직접 받을 수 있으나 @PageableDefault로는 1가지 기준으로만 정렬이 가능한 것 같은 제약사항이 있는 것으로 알고 있습니다.

@SortDefault로 여러개의 정렬 조건을 추가할 수 있다고는 하나 파라미터에 어노테이션이 너무 많아지나..? 싶기도 합니다.

또 만약 page라는 변수명이아니라 pageNo처럼 다른 변수명을 사용할 때의 유연성을 위해서라도 Pageable 인터페이스로 직접 받기보다는 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 것이 더 나을까요?

토이프로젝트보다 훨씬 복잡한 상황의 현업환경에서는 어떤 방식이 더 자주 사용되는지 궁금합니다!

java jpa

답변 2

1

김영한

안녕하세요. 자프링님

실무에서도 간단한 상황에서는 기존 것을 사용하지만, 상황이 복잡해지면 말씀하신 것 처럼 직접 PageRequest를 생성해서 사용하는 경우가 많습니다.

비슷하게 팁을 알려드리자면 프로젝트를 진행하는 모든 부분에서 기존 것을 최대한 활용하는 것이 좋지만, 우리 프로젝트에 맞지 않는다면, 기존 것을 너무 잡고 있는 것 보다는 우리에게 맞는 방식을 사용하는 것이 더 좋습니다.

감사합니다.

1

자프링

감사합니다!!

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요. 컨트롤러의 파라미터로 Pageable을 직접 받을지, 아니면 page, size, sort 등을 따로 받을지에 대해 궁금하시네요.

첫 번째로, Pageable 인터페이스를 컨트롤러의 파라미터로 직접 받는 방법과 @PageableDefault를 사용하여 정렬 기준을 설정하는 방법이 있는데요. @PageableDefault로는 한 가지 기준으로만 정렬할 수 있다는 제약사항이 있습니다. 이 경우, 여러 개의 정렬 조건이 필요한 상황에서는 @SortDefault를 사용하여 추가적인 정렬 조건을 지정할 수 있습니다. 그러나, 이렇게 파라미터에 적용되는 어노테이션이 많아지면 가독성이 떨어지는 문제가 있을 수 있습니다.

두 번째로, 다른 변수명을 사용할 때의 유연성을 위해 Pageable 인터페이스로 직접 받는 대신, 페이징의 각 요소를 받아서 PageRequest 객체를 따로 생성하는 방법을 사용하는 것도 고민해볼 만합니다. 이 방식을 사용하면 변수명에 제약이 없어지기 때문에 더 유연하게 사용할 수 있습니다.

실제 현업 환경에서는 어떤 방식이 더 자주 사용되는지에 대해서는 일반화하기 어렵습니다. 각각의 프로젝트나 상황에 따라 다르게 사용될 수 있는데요. 토이 프로젝트에서는 가독성이나 유연성을 우선시하여 더 편한 방식을 선택하시는 것이 좋습니다. 그리고 실제 현업 환경에서는 프로젝트의 규모와 요구사항에 따라 선택하게 될 것입니다.

결론적으로, 파라미터로 Pageable을 직접 받을지 아니면 Pageable 인터페이스로부터 PageRequest 객체를 생성하여 사용할지는 개인의 선호나 프로젝트의 규모와 요구사항에 따라 다를 수 있습니다. 사실, 어느 쪽을 선택하더라도 동작하는 것은 동일하기 때문에, 편한 방식을 선택하시면 될 것 같아요. 좋은 개발 경험이 되시길 바랄게요!

SpringBoot 4.X에서의 Querydsl 설정

0

91

2

querydsl 오픈소스에 대한 질문

0

72

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

109

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

318

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

71

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

160

1

querydsl sum() 메서드 없어요.

0

159

2

build 디렉터리 생성

0

140

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

114

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

92

1

오타 제보 드립니다.

0

73

2

벌크 연산과 flush, clear

0

76

1

Run As Intellij 로 변경시 Q타입 import 불가

0

88

1

QHello import하기 문제 발생

0

147

2

등록된 함수 보는법(H2Dialect) 질문

0

68

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

199

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

201

1

querydsl 설정 문제

0

222

2

quey dsl 설정부분

0

158

2

count 쿼리 관련 질문입니다!

0

75

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

89

1

답변부탁드리겠습니다.

0

90

2

(OrderSpecifier)관련 내용 어디있을가요

0

66

1

중급문법 벌크연산에서

0

83

2