인프런 커뮤니티 질문&답변

yuyu409300님의 프로필 이미지

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 리포지토리 테스트 케이스 작성

이름중복

22.04.02 20:02 작성

·

211

0

회원가입 할 때 어차피 id값은 다르게 들어가니까

이름은 중복이 가능하도록 코드가 구현되어있는 건가요? 

답변 2

0

yuyu409300님의 프로필 이미지
yuyu409300
질문자

2022. 04. 04. 02:39

그럼 이름이 중복이 안되면

1. findByid처럼 바로 store.get(name) 이렇게 꺼내면 안되는 건가요??

 

2. findByid 메서드가 매개변수로 넘어온 아이디와 아이디가 동일한 member객체를 찾아서 반환해주는 것으로 이해했는데, 구현된 코드는 id값을 반환했는데 어떻게 

optional<Member>하고 한건가요ㅠㅠ?

id는 int아닌가요?

 

OMG님의 프로필 이미지

2022. 04. 04. 20:24

1. 저장소의 key는 Long 타입의 Id입니다.

name으로 찾으려면 강의에서 처럼 스트림으로 Map을 순회하여 해당하는 nam을 찾도록 해야합니다.

2.

findById와 findByName 의 반환타입은 Optional<Member>이며,

store.values().~.findAny()의 반환타입이 Optional<해당 스트림의 타입>이 되기 때문에 가능합니다.

id는 Long입니다.

0

OMG님의 프로필 이미지

2022. 04. 03. 07:01

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

입문편 강의에서 Member객체는 id(식별자)와 name 필드만으로 구성되어 있습니다.

일반적인 사이트에서 진행하는 "아이디 중복확인" 기능을 name으로 진행 한 것으로 보시면 될 것 같아요.

생각하신 것 처럼 회원마다 id값은 다르게 들어가는게 맞습니다.


감사합니다.