동적 쿼리 - Querydsl
예제
설명 : tag가 포함된 Item 리스트를 검색하고 order에 맞는 OrderBy를 수행한다.
tag가 null이면 where절이 무시되고 order가 null이면 등록일자(내림차순)으로 정렬된다.
public List<Item> findItemList(String tag, String order) {
BooleanBuilder builder = new BooleanBuilder();
if (StringUtils.hasText(tag)) {
builder.and(tag.title.eq(tag));
}
return queryFactory.selectFrom(item)
.leftJoin(item.tags, tag)
.where(builder)
.orderBy(itemSort(order))
.fetch();
}
private OrderSpecifier<?> itemSort(String order) {
if ("popular".equals(order)) {
return item.rating.desc();
}
return item.enrolledDateTime.desc();
}
-
BooleanBuilder
-
OrderSpecifier<>
내용 추가 예정
Author And Source
이 문제에 관하여(동적 쿼리 - Querydsl), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@epfzja/Querydsl-동적-쿼리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)