QueryDSL

(QueryDSL) 동적쿼리(feat. BooleanBuilder)

쿠카이든 2022. 6. 18. 15:39
728x90

com.mysema.qeury.BooleanBuilder를 사용하면 특정 조건에 따른 동적 쿼리를 편리하게 생성할 수 있다.

SearchParam param = new SearchParam();
param.setName("시골개발자");
param.setPrice(10000);

QItem item = QItem.item;

BooleanBuilder builder = new BooleanBuilder();
if (StringUtils.hasText(param.getName())) {
    builder.and(item.name.contains(param.getName()));
}
if (param.getPrice() != null) {
    builder.and(item.price.gt(param.getPrice()));
}
List<Item> result = query.from(item)
    .where(builder)
    .list(item);
  • BooleanBuilder를 사용한 위 예제는 상품 이름과 가격 유무에 따라 동적으로 쿼리를 생성한다.

 

출처 : JAVA 표준 ORM JPA 프로그래밍 (저자 김영한)

728x90