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

'QueryDSL' 카테고리의 다른 글

페이징 (feat.QueryDSL)  (0) 2022.06.25
동적 쿼리 - BooleanBuilder 사용  (0) 2022.06.25
(JPA)프로젝션 feat.QueryDSL..  (0) 2022.06.18
QueryDsl 조인 종류  (0) 2022.06.17
페이징과 정렬(feat.queryDSL)  (0) 2022.06.17