Skip to content

Commit

Permalink
Fix: 멤버가 영속성 컨텍스트에 존재하지 않은 상태로 조회되어 생기는 오류 해결
Browse files Browse the repository at this point in the history
  • Loading branch information
yugyeom-ghim committed Nov 11, 2024
1 parent 5be216f commit b10bc40
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
7 changes: 5 additions & 2 deletions src/main/java/notai/auth/AuthArgumentResolver.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@

import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import notai.member.domain.Member;
import notai.member.domain.MemberRepository;
import org.springframework.core.MethodParameter;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.support.WebDataBinderFactory;
import org.springframework.web.context.request.NativeWebRequest;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
Expand All @@ -23,14 +25,15 @@ public boolean supportsParameter(MethodParameter parameter) {
}

@Override
public Long resolveArgument(
@Transactional(readOnly = true)
public Member resolveArgument(
MethodParameter parameter,
ModelAndViewContainer mavContainer,
NativeWebRequest webRequest,
WebDataBinderFactory binderFactory
) {
HttpServletRequest request = (HttpServletRequest) webRequest.getNativeRequest();
Long memberId = (Long) request.getAttribute("memberId");
return memberRepository.getById(memberId).getId();
return memberRepository.getById(memberId);
}
}
4 changes: 2 additions & 2 deletions src/main/java/notai/member/presentation/MemberController.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ public ResponseEntity<MemberTokenRefreshResponse> refreshToken(

@GetMapping("/me")
public ResponseEntity<MemberFindResponse> findMyProfile(
@Auth Long memberId
@Auth Member member
) {
return ResponseEntity.ok(MemberFindResponse.from(memberQueryService.findById(memberId)));
return ResponseEntity.ok(MemberFindResponse.from(member));
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package notai.member.presentation.response;

import notai.member.application.result.MemberFindResult;
import notai.member.domain.Member;

public record MemberFindResponse(
Long id,
String nickname
) {
public static MemberFindResponse from(MemberFindResult result) {
return new MemberFindResponse(result.id(), result.nickname());
public static MemberFindResponse from(Member member) {
return new MemberFindResponse(member.getId(), member.getNickname());
}
}

0 comments on commit b10bc40

Please sign in to comment.