動的クエリー-Querydsl
例
説明:tagを含むItemリストを検索し、orderに適合するOrderByを実行します.
tagがnullの場合、where句は無視されます.orderがnullの場合、登録日(降順)でソートされます.
BooleanBuilder
OrderSpecifier<>
コンテンツの追加
説明: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<>
Reference
この問題について(動的クエリー-Querydsl), 我々は、より多くの情報をここで見つけました https://velog.io/@epfzja/Querydsl-동적-쿼리テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol