• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

findByName메서드 질문

22.05.25 14:30 작성 조회수 158

0

MemoryMemberRepository라는게 DB CRUD의 역할을 하는거라고 생각하고 DTO의 역할을 한다고 생각하면 되는게 맞는지요? 그리고 @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); }
이렇게 썼는데 왜 findByName은 위에 와 다른게 찾는것일까요? 같은 찾기 메서드인데 말이죠
@Override public Optional findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); }
name은 위와 같은 코드이더라고요 store.values().stream() .filter(member -> member.getName().equals(name)) .findAny();이런 메서드들은 무슨의미인지도 궁금합니다.

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2022.05.25

안녕하세요. 성호님, 공식 서포터즈 David입니다.

1. Repository는 DTO가 아닙니다.

2. 동일한 데이터를 조회하는 메서드라도 조회 조건에 따라 내부 구현이 다를 수 있습니다. store 변수의 타입인 Map에 대해 학습하시면 좋을 것 같습니다.

3. 해당 코드는 java 8에서 추가된 스트림을 사용한 코드입니다. 이 부분은 자바 스트림 이란 키워드로 검색하셔서 학습해주세요.

본 강의는 자바 기본 문법을 알고 있다는 가정 하에 진행되는 강의임을 참고 부탁드립니다.

감사합니다.