boolean vs booleanExpression
Boolean vs BooleanExpression
타입과 용도:
- Boolean: Java의 기본 데이터 타입으로, true 또는 false 값만 가질 수 있음
- BooleanExpression: Querydsl에서 제공하는 클래스로, 동적 쿼리 생성에 사용
기능:
- Boolean: 단순히 참/거짓만 반환함
- BooleanExpression: null을 반환할 수 있음
조건을 동적으로 무시할 수 있음
복잡한 조건식을 표현하고 조합할 수 있음.
ex) 예를 들어, queryDsl에서는 분야, 지역, 등등의 값이 들어왔을 때 걸러줘야한다. 따라서 만약 분야가 들어오지 않았을 때는 그 함수가 null을 반환해줘야 한다.
유연성:
- Boolean: 고정된 값만 표현 (true / false)
- BooleanExpression: and(), or() 등의 메서드를 통해 여러 조건을 결합할 수 있어 훨씬 유연하게 동작할 수 있음
쿼리 최적화:
- BooleanExpression: null을 반환하면 해당 where 조건이 무시되어 쿼리 최적화를 할 수 있음
가독성: