BooleanBuilder
🧱 BooleanBuilder
정의
BooleanBuilder는 Querydsl에서 조건을 동적으로 조합하기 위해 사용하는 빌더 클래스이다. 여러 조건을 순서대로 추가하면서 최종 검색 조건을 만들 때 사용한다.
if 분기와 함께 쓰기 좋고, 검색 조건이 많아질수록 유용하다.
🧩 역할
- 동적 조건을 조합한다
- 검색 조건이 많을 때 가독성을 높인다
- 조건 추가 여부를
if로 제어할 수 있다 - 최종적으로
BooleanExpression을 만들어where에 전달한다
🛠 사용법
기본 예시
BooleanBuilder builder = new BooleanBuilder();
if (status != null) {
builder.and(user.status.eq(status));
}
if (name != null) {
builder.and(user.name.contains(name));
}
List<User> result = queryFactory
.selectFrom(user)
.where(builder)
.fetch();
andAnyOf, orAllOf 예시
BooleanBuilder builder = new BooleanBuilder();
builder.andAnyOf(
user.reset.eq("N"),
user.reset.eq("Y").and(user.modDate.loe(expireDatetime))
);
🧩 주요 메서드
| 메서드 | 기능 |
|---|---|
and |
AND 조건으로 추가한다 |
or |
OR 조건으로 추가한다 |
not |
현재 조건을 부정한다 |
andAnyOf |
여러 조건 중 하나라도 만족하는 조건을 AND로 묶는다 |
orAllOf |
여러 조건을 AND로 묶어서 OR 조건에 사용한다 |
⚠️ 주의사항
BooleanBuilder는 Querydsl 전용 클래스다.- 조건이 많아지면 오히려 복잡해질 수 있으니 필요한 곳에만 사용한다.
- 단순한 조건은
BooleanExpression을 직접 조합하는 편이 더 깔끔할 수 있다. null조건은if로 걸러서 추가하는 것이 일반적이다.
📌 정리
BooleanBuilder는 Querydsl의 동적 조건 조합용 빌더다.- 검색 조건이 자주 바뀌는 화면이나 API에서 유용하다.
- 최종적으로
where에 넣을 조건을 만들 때 사용한다.
댓글남기기