ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 10. Querydsl Dynamic Query (동적쿼리)
    BackEnd/Querydsl 2021. 7. 29. 20:37
    반응형

    [전체소스코드]

     

    1. BooleanBuilder

    private List<Member> searchMember1(String usernameCond, Integer ageCond) {
        BooleanBuilder builder = new BooleanBuilder();
        if (usernameCond != null) {
            builder.and(member.username.eq(usernameCond));
        }

        if (ageCond != null) {
            builder.and(member.age.eq(ageCond));
        }
        return queryFactory
                .selectFrom(member)
                .where(builder)
                .fetch();
    }

     

    2. Where 다중 파라미터

      > where 조건에 null 값은 무시된다.

      > 메서드를 다른 쿼리에서도 사용이 가능하다.

    private List<Member> searchMember2(String usernameCond, Integer ageCond) {
        return queryFactory
                .selectFrom(member)
                .where(usernameEq(usernameCond), ageEq(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;
    }

    반응형

    'BackEnd > Querydsl' 카테고리의 다른 글

    12. Querydsl SQL function  (0) 2021.07.29
    11. Querydsl Update/Delete Bulk  (0) 2021.07.29
    09. Querydsl Distinct  (0) 2021.07.29
    08. Querydsl Projection  (0) 2021.07.27
    07. Querydsl 상수, 문자 더하기  (0) 2021.07.27

    댓글

Designed by Tistory.