끄적끄적
[jpa] querydsl BooleanBuilder 사용하기 본문
@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' 이므로 혼동하지 않도록 주의
'개발' 카테고리의 다른 글
[java] 람다 Functional Interface (0) | 2020.03.12 |
---|---|
[CI/CD] travis + aws codedeploy 사용하기 (0) | 2020.03.09 |
[spring] filter에서 예외응답하기 (0) | 2020.03.09 |
[jpa] @Entity에 default 값을 설정하기 (0) | 2020.03.09 |
[jpa] querydsl 사용하기 (0) | 2020.03.09 |
Comments