-
[Spring] querydsl - 동적쿼리 만드는 법Spring 2022. 1. 5. 12:35
BooleanExpression을 써 쿼리를 조합하며 사용할 수 있다.
private List<Member> searchMember2(String usernameCond, Integer ageCond) { return queryFactory .selectFrom(member) .where(usernameEq(usernameCond), ageEq(ageCond)) .fetch(); } private List<Member> searchMember3(String usernameCond, Integer ageCond) { return queryFactory .selectFrom(member) .where(allEq(usernameCond, ageCond)) .fetch(); } private BooleanExpression usernameEq(String usernameCond) { return usernameCond != null ? member.username.eq(usernameCond) : null; } private BooleanExpression ageEq(Integer ageCond) { return ageCond != null ? member.age.eq(ageCond) : null; } private BooleanExpression allEq(String usernameCond, Integer ageCond) { return usernameEq(usernameCond).and(ageEq(ageCond)); }
where조건에 null 값은 무시되는 것을 이용한 구현
메소드를 다른 쿼리에서도 재활용이 가능하다.
쿼리 자체의 가독성이 높아진다.
쿼리끼리 조합도 가능하다.
'Spring' 카테고리의 다른 글
[Spring] 프로파일 설정을 통해 샘플데이터 추가하기 (0) 2022.01.07 [Spring] querydsl - 수정, 삭제 벌크 연산 (0) 2022.01.05 [Spring] querydsl - 프로젝션과 결과 반환 방법 (0) 2022.01.05 [Spring] querydsl - 임의의 기준으로 정렬을 하고 싶다면 (0) 2022.01.05 [Spring] AssertJ 정리 (0) 2022.01.04