• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

@Query문

23.12.14 15:09 작성 조회수 138

0

jpashop 프로젝트에서 OrderRepository를 criteria 부분은 스프링데이터jpa로 바꿔보려하는데

 

@Query(“select o from Order o join o.member m)

List<Order> findByMemberName();

 

이렇게 작성한다면 Order를 멤버 이름으로 조회 할 수 있을까요??

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.12.14

안녕하세요. wodlszz님, 공식 서포터즈 y2gcoder입니다.

@Query 를 사용하신다면 JPQL을 완전하게 짜주셔야 할 것 같습니다!

@Query("select o from Order o join o.member m where m.name = :memberName) 
List<Order> findByMemberName(String memberName)

이런식으로 시도해보시겠습니까?

감사합니다.

wodlszz님의 프로필

wodlszz

질문자

2023.12.14

제가 쿼리문을 짜면서 항상 헷갈리는게 있는데

where m.name = :memberName 이 부분에서

name은 제가 엔티티 등에서 설정한 변수값이고

memberName은 아무 값이나 작성해도 되는 값인건가요?

 

아니면 반대인가요??

y2gcoder님의 프로필

y2gcoder

2023.12.14

말씀하신 것이 맞습니다. name은 엔티티 필드명입니다! 그래서 인텔리제이 유료버전에서는 자동완성을 지원해줍니다 :)

그리고 :이 붙은 값은 파라미터 값이라고 생각하시면 됩니다!
파라미터명이랑 일치하도록 적어주시면 됩니다!