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 |