쌓고 쌓다
@Authenticationprincipal와 영속성 컨텍스트 본문
기존의 회원 프로필 이미지를 DELETE 쿼리를 날려주려고 했으나.. 날아가지 않는다.
member.setMemberImg(null)를 작성하기전에는
member에서 MemberImage를 참조하고 있어서 null로도 해주었지만 동작하지 않는다...
member의 Name을 변경했지만 UPDATAE 쿼리는 나가지 않는다.
member가 dirty checking이 동작하지 않는것인데 영속성 컨텍스트에 존재하지 않는다는 이유인것 같다.
member를 다시 초기화하는 과정을 넣었더니.
public String updateMember(MemberUpdateRequest memberUpdateRequest, MultipartFile memberImg, Member member) throws DuplicateException, IOException {
...
member = memberRepository.findById(member.getId()).get();
...
}
DELETE 쿼리가 정상적으로 나간다.
컨트롤러에서 넘겨준 member가 영속성 컨텍스트에 없는것이다.
컨트롤러에서 넘겨준 Member는 @AuthenticationPrincipal을 통해 가져온 객체이다.
DB에서 가져온 Member를 Authentication에 등록하고 가져올때도 영속성 컨텍스트에 존재할 줄 알았지만 아니였다.
@authenticationprincipal로 가져온 정보로 Repository에 회원을 조회하는 과정을 추가하여 해결하자..!
'프로그래밍 > spring' 카테고리의 다른 글
@Transactional 롤백 동작 정책 (예외가 발생했는데 롤백이 안될때) (0) | 2024.03.06 |
---|---|
DTO와 Entity의 변환 Layer는 어디가 좋을까? (0) | 2024.02.29 |
QueryDSL로 검색과 페이징 API 요청 처리하기 (0) | 2024.02.13 |
좋아요순 같은 복잡한 정렬 기능 추가하기 QueryDSL (1) | 2024.02.09 |
컨트롤러 테스트 코드 @AuthenticationPrincipal 인증 방법 (0) | 2024.02.04 |
Comments