You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.
@Query(value ="SELECT v FROM members v")
funfindByNicknameContainingIgnoreCase(@Param("nickname") keyword:String): List<SearchMemberResponse>
이미 JPA 구현체로 findByNicknameContainingIgnoreCase가 있음에도 JPQL로 어노테이션인 @Query가 존재하며
해당 쿼리도 잘못되어 있음 그래서 아래 코드 둘중 하나로 구성 되어야함
해결책
// JPA로만 구현시funfindByNicknameContainingIgnoreCase(nickname:String): List<Member>
// JPQL로 구현시 JPQL에서 :파라미터명이 있어야 제대로 인식
@Query("SELECT m FROM Member m WHERE m.nickname LIKE %:nickname%")
funfindByNickname(@Param("nickname") nickname:String): List<Member>
또한 MemberRepository , MemberReader에서 반환값들은 Member로 해야함
이유는 로우레벨이기도 하며 DTO는 주기적으로 변경이 이루어지기 때문 그리고 JPA에서 DTO로 바로 반환하기 번거로움 점도 존재
그래서 보통 DTO로 바로 반환을 원할경우 Querydsl을 사용
그외
SearchController에서 @PathVariable로 검색을 하고 있지만 쿼리 파라미터로 하는것을 권장
일부 더 수정해야 할 코드들이 보이지만 나머지는 직접 해결해보세요!
The text was updated successfully, but these errors were encountered:
질문자
@handyejin
질문내용
원인
MemberRepository
코드에 원인이 되는 코드이미 JPA 구현체로
findByNicknameContainingIgnoreCase
가 있음에도 JPQL로 어노테이션인@Query
가 존재하며해당 쿼리도 잘못되어 있음 그래서 아래 코드 둘중 하나로 구성 되어야함
해결책
또한
MemberRepository
,MemberReader
에서 반환값들은 Member로 해야함이유는 로우레벨이기도 하며 DTO는 주기적으로 변경이 이루어지기 때문 그리고 JPA에서 DTO로 바로 반환하기 번거로움 점도 존재
그래서 보통 DTO로 바로 반환을 원할경우 Querydsl을 사용
그외
SearchController
에서@PathVariable
로 검색을 하고 있지만 쿼리 파라미터로 하는것을 권장일부 더 수정해야 할 코드들이 보이지만 나머지는 직접 해결해보세요!
The text was updated successfully, but these errors were encountered: