본문 바로가기
Spring

Spring Day 32 : Booleanbuilder, Booleanexpression

by 우 석 2024. 3. 12.

 "BooleanBuilder"와 "BooleanExpression"은 Spring Framework에서의 Querydsl 라이브러리에서 사용되는 용어

BooleanBuilder

Querydsl에서 제공하는 조건을 동적으로 구성하기 위한 빌더 클래스 

복잡한 쿼리 조건을 처리하기 위해 사용되며, AND, OR 등의 논리 연산자를 사용하여 여러 개의 조건을 조합할 수 있다.

 

● BooleanBuilder를 사용하여 동적으로 쿼리 조건을 생성하고, 이를 쿼리 실행에 활용

 

BooleanExpression

Querydsl에서 사용되는 논리 표현식을 나타내는 인터페이스

쿼리 조건을 정의 및 쿼리 실행에 사용한다. 또한 Querydsl의 Predicate 인터페이스를 상속받아 사용할 수 있다.

 

● BooleanExpression은  조건을 표현하며, 필요한 조건을 구현하여 사용

 

"BooleanBuilder"와 "BooleanExpression" 차이가 뭔가요?

연속성의 차이

결국에는 둘 다 쿼리 표현식을 사용하는 건데 Booleanbuilder는 표현식의 묶음으로 builder 패턴처럼 and, or로 묶어서 사용할 수 있고, Booleanexpression는 단발성. 즉, Booleanexpression 하나의 쿼리식을 가지고 다른 표현과는 묶어서 사용할 수 없다.

 

e.g.

booleanbuilder a;
a.and(b).and(c)
where(a)

booleanexpression a;
booleanexpression b;
booleanexpression c;
where(a.and(b).and(c))