쌓고 쌓다

@Authenticationprincipal와 영속성 컨텍스트 본문

프로그래밍/spring

@Authenticationprincipal와 영속성 컨텍스트

승민아 2024. 2. 21. 18:21

기존의 회원 프로필 이미지를 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에 회원을 조회하는 과정을 추가하여 해결하자..!

Comments