[FEAT] 6주차 미션_사이먼#21
Conversation
|
전반적으로 코드를 되게 잘 짜준것 같아. 특히 쿼리 부분은 나도 이런 방법도 있구나 라는걸 알게 해준 것 같아. |
| private String phoneNumber; | ||
|
|
||
| @Column(name = "profile_url") | ||
| @Column(name = "profile_url", nullable = false) |
There was a problem hiding this comment.
나 같은 경우는 프로필 사진은 null이 가능하도록 했어. 프로필 설정 안하는 사람도 많다고 생각해서 null허용하고 나중에 기본값을 주면 된다고 생각했거든. 이건 그냥 생각의 차이인것 같긴 해
| @OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE) | ||
| private List<MemberPreferFood> memberPreferFoodList = new ArrayList<>(); | ||
|
|
||
| @OneToMany(mappedBy = "member", cascade = CascadeType.REMOVE, orphanRemoval = true) |
There was a problem hiding this comment.
orphanRemoval = true 이게 뭔지 모르겠어서 스터디때 설명해주면 좋을 것 같아. 위에 MemberPreferFood랑 양방향 참조 할때는 사용 하지 않았고 여기서는 사용했는데 이 이유도 궁금하다
| @Transactional | ||
| public ReviewResDTO.CreateReview createReview(Long storeId, ReviewReqDTO.CreateReview dto) { | ||
| Store store = storeRepository.findById(storeId) | ||
| .orElseThrow(() -> new StoreException(StoreErrorCode.MEMBER_NOT_FOUND)); |
There was a problem hiding this comment.
여기서는 MEMBER_NOT_FOUND 보다는 STORE_NOT_FOUND를 에러코드로 보내주는게 맞는 것 같아
|
|
||
| Review saved = reviewRepository.save(review); | ||
|
|
||
| return ReviewResDTO.CreateReview.builder() |
There was a problem hiding this comment.
여기서 return으로 ResDTO에 직접 다시 값을 반환했던데 우리 컨버터 만들었었잖아? 리턴을 컨버로 주는 방법으로도 한번 해보는 경험을 해보면 좋을 듯
| where mm.member.id = :memberId | ||
| and mm.status = :status | ||
| order by mm.updatedAt desc | ||
| """) |
There was a problem hiding this comment.
여기서 나는 workbook에서 배운 fetch join을 안쓰고 처음부터 DTO에서 조회해서 사용하는 방식을 사용했네. 이제 내가 앞서 피드백했던 컨버터를 쓰지 않았던 이유가 보이기 시작했다. 단순 조회에서는 이 방법이 좋은 방법인 것 같아.
📂 관련 이슈
🛠️ 작업 사항
📸 관련 이미지 (스크린샷 또는 동영상)
리뷰 작성
마이페이지 조회
진행 중, 진행 완료한 미션 조회
홈 화면 조회
💬 기타 설명