728x90
회원 페이지를 개발했는데 검색 기능이 필요하다. Querydsl의 like로 코드를 작성하고 확인해보니 컬럼의 풀텍스트가 일치하는 것만 출력이 된다. 앞뒤로 %를 붙이니 부분 텍스트만 입력해도 일치하는 것으로 리스트가 출력된다. contains는 어떨까 싶어서 확인해보니 %를 넣지 않아도 like에다가 %를 앞뒤로 붙인 것과 같은 결과가 출력된다.
차이를 레퍼런스를 통해서 확인했는데 둘 다 StringExpression 클래스에 속해있고 간단한 설명은 다음과 같다.
query = query.where(qUserEntity.email.like(userEmail));
//지정된 str(userEmail)과 같으면 return
query = query.where(qUserEntity.email.contains(userEmail));
//지정된 str(userEmail)이 포함되는 경우 true를 return
출처 : https://cherrypick.co.kr/querydsl-difference-like-contains/
728x90
'QueryDSL' 카테고리의 다른 글
[JPA] Querydsl 에서 Fetch Join을 적용시키는 방법 (0) | 2022.10.15 |
---|---|
QueryDSL 페이징 방법 (0) | 2022.07.16 |
페이징 (feat.QueryDSL) (0) | 2022.06.25 |
동적 쿼리 - BooleanBuilder 사용 (0) | 2022.06.25 |
(QueryDSL) 동적쿼리(feat. BooleanBuilder) (0) | 2022.06.18 |