• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

MemberRepository의 findName이 이해가 되지 않습니다

22.12.29 11:51 작성 조회수 346

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

public List<Member> findName(String name){
    return em.createQuery("select m from m where m.name =:name", Member.class)
            .setParameter("name", name)
            .getResultList();
}


MemberRepository 패키지의 findName을 보면

반환 타입이 List<Member>인데 validation을 할 때 보면 findName이 넘겨준 값이 존재하는지 안하는지로 중복 여부를 체크합니다.

그리고 findName의 쿼리를 보면 쿼리 실행 값이 한개만 나오는거로 예상이 됩니다. where절에서 넘겨받은 name 파라미터 값과 동일한 데이터만 이라고 조건이 있기에.

findName 실행 결과 값을 Member 객체 하나만 받을 텐데 그렇다면 name은 중복인 값이 존재하지 못하는데 왜 List<Member> 자료형을 쓰는건가요?

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2022.12.29

안녕하세요. 박준영님, 공식 서포터즈 David입니다.

아래 글 답변 참고해 주세요:)

https://www.inflearn.com/questions/121286

감사합니다.