인프런 커뮤니티 질문&답변

SIGMA101님의 프로필 이미지
SIGMA101

작성한 질문수

실전! Querydsl

동적 쿼리와 성능 최적화 조회 - Where절 파라미터 사용

동적쿼리 where절 파라미터 조합 질문입니다.

해결된 질문

작성

·

349

9

private BooleanBuilder ageCond(Integer ageGoe, Integer ageLoe) {
BooleanBuilder booleanBuilder = new BooleanBuilder();
return booleanBuilder
.and(ageGoe(ageGoe))
.and(ageLoe(ageLoe))
.and(teamNameEq("teamB"));
}

private BooleanExpression usernameEq(String username) {
return isEmpty(username) ? null : member.username.eq(username);
}
private BooleanExpression teamNameEq(String teamName) {
return isEmpty(teamName) ? null : team.name.eq(teamName);
}
private BooleanExpression ageGoe(Integer ageGoe) {
return ageGoe == null ? null : member.age.goe(ageGoe);
}
private BooleanExpression ageLoe(Integer ageLoe) {
return ageLoe == null ? null : member.age.loe(ageLoe);
}

ageCond 처럼 여러 조건 조합시 null처리를 조금 이쁘게 하고 싶은데 다른 생각이 안나서 booleanBuilder로 해봤더니 별 문제는 없는데요, 혹시 다른 깔끔한 방법이 있을까요?

답변 1

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 박승일님^^

깔끔하네요^^!

null까지 고려하면서 해결하기에는 이 방법이 가장 좋아보입니다. 혹시 더 나은 방법을 찾으면 저도 알려주세요^^!

SIGMA101님의 프로필 이미지
SIGMA101

작성한 질문수

질문하기