개발
[jpa] querydsl BooleanBuilder 사용하기
으아아아앜
2020. 3. 9. 17:53
@Override
public long searchBoardCnt(BoardDTO.Search dto){
BooleanBuilder builder = new BooleanBuilder();
String keyword = dto.getKeyword();
if (dto.isTitle()) {
builder.or(boardDetail.title.contains(keyword));
}
if (dto.isContent()) {
builder.or(boardDetail.content.contains(keyword));
}
if (dto.isNickname()) {
builder.or(boardDetail.account.nickname.contains(keyword));
}
return queryFactory.selectFrom(boardDetail)
.where(builder)
.fetchCount();
}
※ 게시판 검색기능을 구현시 매우 유용
※ contains()는 title LIKE '%XXX%' 와 같은 기능이고, like()는 title='XXX' 이므로 혼동하지 않도록 주의