BooleanBuilder, BooleanExpression 차이
2246
작성한 질문수 47
영한님 안녕하세요 작년 7월부터 스프링 공부했는데 어느새 여기까지 왔네요,, 좋은 강의 덕분에 재밌게 잘 공부하고 있습니다
.
BooleanBuilder와 BooleanExpression 차이를 알고 싶어서 다이어그램을 보았습니다.
Expression을 상속하고 있는 클래스더라구요
그래서 "도대체 무슨 차이지"라고 생각이 들어 찾아보았습니다.
동욱님 블로그 를 참고하고나서 제 생각엔 BooleanBuilder는 where 조건에 BooleanBuilder 객체 자체를 넣으니 코드를 이해하는데 가독성이 떨어진다고 생각했습니다.(조건들이 하나의 BooleanBuilder에 있기 때문)
.
BooleanExpression을 사용하면 여러 조건들을 각각 BooleanExpression을 반환하는 메서드를 만들어 가독성 좋게 조건들을 나열할 수 있고, 조합을 할 수 있다라고 생각했습니다.
.
하지만 옛날에 영한님이 Q&A에 대한 답을 보았을 때, BooleanBuilder로도 충분하게 가독성 좋은 코드를 만들 수 있더라구요
.
그래서 제 생각엔 두 가지의 차이점이 보였습니다
.
1. BooleanExpression은 null일 경우 그냥 null만 반환해도 되지만, BooleanBuilder는 항상 BooleanBuilder라는 객체를 생성하여 반환해야하기 때문에 리소스 측면에서 낭비이다?
2. BooleanExpression은 ","을 이용해서 where조건에 여러 BooleanExpression의 조건들을 나열할 수 있지만, BooleanBuilder는 where에 나열할 수 없다?
정도라고 생각이 드는데, 아직까지 뭐가 확실하게 다른거지라는 생각이 들어 질문드립니다!
감사합니다
답변 1
2
안녕하세요. gusdn85554님
BooleanExpression은 member.age.eq(xx) 같은 경우처럼 표현식의 결과로 반환되는 값입니다.
BooleanBuilder는 이런 표현식을 모아서 사용할 수 있도록 도와주는 도구로 이해하시면 됩니다.
감사합니다.
join에대해 질문드립니다.
0
22
1
SpringBoot 4.X에서의 Querydsl 설정
0
168
2
querydsl 오픈소스에 대한 질문
1
103
1
예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?
0
128
1
Querydsl 6.X버전에 대해서 어떻게 생각하시나요?
0
356
2
여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요
1
88
1
fetchResults()는 더이상 권장되지 않는다는데 맞나요?
0
172
1
querydsl sum() 메서드 없어요.
0
172
2
build 디렉터리 생성
0
153
2
자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?
0
124
2
현재 Querydsl에서 from절 서브쿼리를 지원하나요?
0
99
1
오타 제보 드립니다.
0
80
2
벌크 연산과 flush, clear
0
85
1
Run As Intellij 로 변경시 Q타입 import 불가
0
97
1
QHello import하기 문제 발생
0
158
2
등록된 함수 보는법(H2Dialect) 질문
0
78
2
5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의
1
209
2
[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??
1
214
1
querydsl 설정 문제
0
229
2
quey dsl 설정부분
0
169
2
count 쿼리 관련 질문입니다!
0
79
1
stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.
0
100
1
답변부탁드리겠습니다.
0
95
2
(OrderSpecifier)관련 내용 어디있을가요
0
68
1





