Spring Data JPA 쿼리 like, containing의 차이점

Jeheon Park·2021년 10월 7일
0

문제점

위의 코드와

아래의 코드는 다른 내용을 들고 있었다. 만약에 내가 test코드를 만들지 않고 돌렸으면 나중에 곤욕을 치뤘을 것이다.

해당 테스트를 돌리면 두번째 코드는 null이 true이기 때문에 패스하지 못한다. 하지만 첫번째 테스트는 통과한다.

내용

  • Like를 사용하면 해당 쿼리가 나가게된다.

    Like: select ... like :username

  • StartingWith를 사용하면 해당 쿼리가 나가게된다.

    StartingWith: select ... like :username%

  • EndingWith를 사용하면 해당 쿼리가 나가게된다.

    EndingWith: select ... like %:username

  • Containing을 사용하면 해당 쿼리가 나가게된다.

    Containing: select ... like %:username%

한마디로 정리하자면 %의 위치가 달라져서 서로다른 쿼리가 날라가기 때문에 조심해야 한다. 나의 목적은 특정 단어가 포함된 책의 이름을 가진 책을 찾는것이었기 때문에 Containing을 사용하였다.

참조

https://stackoverflow.com/questions/21456494/spring-jpa-query-with-like

profile
개발자

0개의 댓글