inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

BooleanBuilder, dto 변환, fetchCount() 질문 있습니다

308

돈까스는맛있어

작성한 질문수 6

0

강의 너무 감사합니다~ 다 듣고 여러가지 시도해보니 3가지 의문점이 있어서 질문드립니다!
 
1. where에 BooleanBuilder 사용보다는 BooleanExpression을 사용하는게 좀 더 좋다는 강의를 들었습니다.
https://www.inflearn.com/questions/94056
 
그런데 위 링크를 보면 강의에서 where(builder)를 쓰시는 것과 달리 BooleanBuilder를 강의에서 소개해주신 BooleanExpression 방법처럼 체인해서 사용하고 계십니다. BooleanBuilder를 사용하면 BooleanExpression과 달리 where절에 전체 null일 경우 예외가 터지는 경우도 해결할 수 있는 것으로 보이는데 링크에서 사용하신 방법을 쓰는게 바람직할까요? 2. domain을 dto로 변환하는 과정에서 domain에 있지 않은 좋아요 갯수, 좋아요 여부 등의 추가 변수들을 어디에서 처리하면 좋을까요? java service쪽에 가져와서 해결하는게 좋을까요, 아니면 repository에서 querydsl로 조회하고 모두 가공한 뒤에 그 결과를 service쪽에 가져오는게 나을까요? 엔티티 편의 메서드를 사용하면 원하는 결과를 바로 dto로 조회하지 못하므로 domain을 불러와서 변경 작업 후 dto로 또다시 변경해줘야한다고 생각이 들어서 깔끔하게 처리하는 방법이 있나 궁금합니다 3. 카운트 쿼리를 날릴 때 성능을 위해서 fetchResults()대신에 fetch()와 fetchCount()를 따로 날리면 좋다고 배웠습니다. 개인적으로 이 경우 그냥 fetch()로 받아온 List를 .size()로 count를 가져오는게 편하다고생각되는데 따로 fetchCount()로 조회하는 이유가 있을까요?

JPA java

답변 1

0

김영한

안녕하세요. 돈까스는맛있어님

1. 그런데 위 링크를 보면 강의에서 where(builder)를 쓰시는 것과 달리 BooleanBuilder를 강의에서 소개해주신 BooleanExpression 방법처럼 체인해서 사용하고 계십니다. BooleanBuilder를 사용하면 BooleanExpression과 달리 where절에 전체 null일 경우 예외가 터지는 경우도 해결할 수 있는 것으로 보이는데 링크에서 사용하신 방법을 쓰는게 바람직할까요?

-> 네 여러가지 방법이 있다고 이해하시면 될 것 같아요.

2. domain을 dto로 변환하는 과정에서 domain에 있지 않은 좋아요 갯수, 좋아요 여부 등의 추가 변수들을 어디에서 처리하면 좋을까요? java service쪽에 가져와서 해결하는게 좋을까요, 아니면 repository에서 querydsl로 조회하고 모두 가공한 뒤에 그 결과를 service쪽에 가져오는게 나을까요? 엔티티 편의 메서드를 사용하면 원하는 결과를 바로 dto로 조회하지 못하므로 domain을 불러와서 변경 작업 후 dto로 또다시 변경해줘야한다고 생각이 들어서 깔끔하게 처리하는 방법이 있나 궁금합니다

-> 이 부분은 둘다 정답이 됩니다. 본인 상황에 맞는 편한 방법을 선택하시면 됩니다^^

3. 카운트 쿼리를 날릴 때 성능을 위해서 fetchResults()대신에 fetch()와 fetchCount()를 따로 날리면 좋다고 배웠습니다. 개인적으로 이 경우 그냥 fetch()로 받아온 List를 .size()로 count를 가져오는게 편하다고생각되는데 따로 fetchCount()로 조회하는 이유가 있을까요?

-> 페이징 쿼리는 전체 데이터 수가 필요합니다. 그런데 list.size()는 현재 조회한 데이터(limit가 10이면 최대 10)만 조회할 수 있습니다.

감사합니다.

join에대해 질문드립니다.

0

8

1

SpringBoot 4.X에서의 Querydsl 설정

0

157

2

querydsl 오픈소스에 대한 질문

1

101

1

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

0

127

1

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

0

349

2

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

1

86

1

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

0

172

1

querydsl sum() 메서드 없어요.

0

169

2

build 디렉터리 생성

0

152

2

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

0

123

2

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

0

99

1

오타 제보 드립니다.

0

79

2

벌크 연산과 flush, clear

0

84

1

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

0

95

1

QHello import하기 문제 발생

0

157

2

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

0

76

2

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

1

209

2

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

1

213

1

querydsl 설정 문제

0

228

2

quey dsl 설정부분

0

168

2

count 쿼리 관련 질문입니다!

0

79

1

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

0

98

1

답변부탁드리겠습니다.

0

95

2

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

0

68

1