-
Notifications
You must be signed in to change notification settings - Fork 78
[Spring Data JPA] 정민주 미션 제출합니다. #153
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: joungminju
Are you sure you want to change the base?
Changes from all commits
eaf9f41
c90b85d
800c9ce
6fae5b9
3dbf1df
999ce9a
18dc064
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,13 @@ | ||
| package roomescape.member; | ||
|
|
||
| import java.util.Optional; | ||
| import org.springframework.data.jpa.repository.JpaRepository; | ||
|
|
||
| public interface MemberRepository extends JpaRepository<Member, Long> { | ||
|
|
||
| Optional<Member> findByEmailAndPassword(String email, String password); | ||
|
|
||
| Optional<Member> findByName(String name); | ||
|
|
||
|
|
||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -5,27 +5,32 @@ | |
|
|
||
| @Service | ||
| public class MemberService { | ||
| private MemberDao memberDao; | ||
| private MemberRepository memberRepository; | ||
|
|
||
| public MemberService(MemberDao memberDao) { | ||
| this.memberDao = memberDao; | ||
| public MemberService(MemberRepository memberRepository) { | ||
| this.memberRepository = memberRepository; | ||
| } | ||
|
|
||
| public MemberResponse createMember(MemberRequest memberRequest) { | ||
| Member member = memberDao.save(new Member(memberRequest.getName(), memberRequest.getEmail(), memberRequest.getPassword(), "USER")); | ||
| Member member = memberRepository.save(new Member(memberRequest.getName(), memberRequest.getEmail(), memberRequest.getPassword(), "USER")); | ||
| return new MemberResponse(member.getId(), member.getName(), member.getEmail(), member.getRole()); | ||
| } | ||
|
|
||
| public MemberResponse findById(Long id) { | ||
| Optional<Member> optionalMember = memberDao.findById(id); | ||
| Optional<Member> optionalMember = memberRepository.findById(id); | ||
| Member member = optionalMember.orElseThrow(() -> new IllegalArgumentException("해당 id를 가진 Member 객체를 찾을 수 없습니다.")); | ||
| return new MemberResponse(member.getId(), member.getName(), member.getEmail(), member.getRole()); | ||
| } | ||
|
|
||
| public MemberResponse findByEmailAndPassword(String email, String password) { | ||
| Optional<Member> optionalMember = memberDao.findByEmailAndPassword(email, password); | ||
| Optional<Member> optionalMember = memberRepository.findByEmailAndPassword(email, password); | ||
| Member member = optionalMember.orElseThrow(() -> new IllegalArgumentException("해당 email와 password를 가진 Member 객체를 찾을 수 없습니다.")); | ||
| return new MemberResponse(member.getId(), member.getName(), member.getEmail(), member.getRole()); | ||
| } | ||
|
|
||
| public Member findByName(String name) { | ||
| return memberRepository.findByName(name) | ||
| .orElseThrow(() -> new IllegalArgumentException("존재하지 않는 회원")); | ||
| } | ||
|
Comment on lines
+31
to
+34
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 현재 해당 method는 reservation을 생성하는 메소드에서 사용하는데 유저의 존재 여부를 검증 후 불러올 때에는 name 보다는 id를 이용하는 것이 좋습니다. 그 이유는 name 같은 경우에는 동명이인이 있을 수 있기 때문에 잘못된 유저 정보를 가져올 수 있기 때문에 id 처럼 유일한 정보를 바탕으로 객체 정보를 불러오는 것이 좋습니다.
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아 넵 맞습니다 !! 그런데 주어진 테스트코드에서 |
||
|
|
||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,64 @@ | ||
| package roomescape.reservation; | ||
|
|
||
|
|
||
| import roomescape.waiting.WaitingResponse; | ||
|
|
||
| public class MyReservationResponse { | ||
|
|
||
| private Long id; | ||
| private String theme; | ||
| private String date; | ||
| private String time; | ||
| private String status; | ||
|
|
||
| private MyReservationResponse() { | ||
| } | ||
|
|
||
| private MyReservationResponse(Long id, String theme, String date, String time, String status) { | ||
| this.id = id; | ||
| this.theme = theme; | ||
| this.date = date; | ||
| this.time = time; | ||
| this.status = status; | ||
| } | ||
|
|
||
| public static MyReservationResponse from(Reservation reservation) { | ||
| return new MyReservationResponse( | ||
| reservation.getId(), | ||
| reservation.getTheme().getName(), | ||
| reservation.getDate(), | ||
| reservation.getTime().getValue(), | ||
| "예약" | ||
| ); | ||
| } | ||
|
|
||
| public static MyReservationResponse from(WaitingResponse waitingResponse) { | ||
| return new MyReservationResponse( | ||
| waitingResponse.getId(), | ||
| waitingResponse.getTheme(), | ||
| waitingResponse.getDate(), | ||
| waitingResponse.getTime(), | ||
| waitingResponse.getWaitingNumber() + "번째 예약대기" | ||
| ); | ||
| } | ||
|
|
||
| public Long getId() { | ||
| return id; | ||
| } | ||
|
|
||
| public String getTheme() { | ||
| return theme; | ||
| } | ||
|
|
||
| public String getDate() { | ||
| return date; | ||
| } | ||
|
|
||
| public String getTime() { | ||
| return time; | ||
| } | ||
|
|
||
| public String getStatus() { | ||
| return status; | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jpa를 사용하기 위해 추가한 기본생성자는 public 접근 제어자 보다는 protected 접근제어자가 좋을 것 같습니다.