-
Notifications
You must be signed in to change notification settings - Fork 80
[Spring Data JPA] 김민지 4-6단계 미션 제출합니다. #190
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: mmm307955
Are you sure you want to change the base?
Changes from all commits
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,10 @@ | ||
| package roomescape.member; | ||
|
|
||
| import java.util.Optional; | ||
| import org.springframework.data.jpa.repository.JpaRepository; | ||
| import org.springframework.stereotype.Repository; | ||
|
|
||
| @Repository | ||
| public interface MemberRepository extends JpaRepository<Member, Long> { | ||
| Optional<Member> findByEmailAndPassword(String email, String password); | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -4,15 +4,16 @@ | |
|
|
||
| @Service | ||
| public class MemberService { | ||
| private MemberDao memberDao; | ||
| private final 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")); | ||
|
Comment on lines
-7
to
+16
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. 데이터 접근 계층에 대한 변경이 있었을 뿐인데, 이와 연관 없는 비즈니스 계층까지 변경이 발생했네요. 코드 변경이 많아질 수록, 실수로 인해 의도치 않은 버그의 발생 확률이 높아지고, 연관이 없는 코드의 변경이 많아질 수록, 명확한 변경 사항의 추적이 힘들어질 거에요. 또한 JPA의 학습 곡선이 너무 높거나, 내부 기술 제약으로 인해 다시 JdbcTemplate을 사용한 코드로 되돌려야 한다면, 다시 이러한 변경이 발생할 것 같아요. 그렇다면 데이터 접근 계층의 구조를 어떻게 설계하고 사용했어야 이러한 연관 없는 변경을 막을 수 있을까요? |
||
| return new MemberResponse(member.getId(), member.getName(), member.getEmail()); | ||
| } | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| package roomescape.reservation; | ||
|
|
||
| import roomescape.waiting.Waiting; | ||
|
|
||
| public record MyReservationResponse( | ||
| Long id, | ||
| String theme, | ||
| String date, | ||
| String time, | ||
| String status | ||
| ) { | ||
| public static MyReservationResponse from(Reservation reservation) { | ||
| return new MyReservationResponse( | ||
| reservation.getId(), | ||
| reservation.getTheme().getName(), | ||
| reservation.getDate(), | ||
| reservation.getTime().getTime(), | ||
| "예약" | ||
| ); | ||
| } | ||
|
|
||
| public static MyReservationResponse from(Waiting waiting, Long rank) { | ||
| return new MyReservationResponse( | ||
| waiting.getId(), | ||
| waiting.getTheme().getName(), | ||
| waiting.getDate(), | ||
| waiting.getTime().getTime(), | ||
| (rank + 1) + "번째 예약대기" | ||
| ); | ||
| } | ||
| } |
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.
@GeneratedValue의strategy속성을 지정하지 않는다면 기본 값은 어떤게 사용되나요?또한 strategy의 종류는 어떤게 있는지 알아봐도 좋을 것 같아요.