회원탈퇴 : Soft Delete
- Soft Delete (논리 삭제) : db에서 데이터 자체를 지워버리는 Hard delete 방식과는 달리 db에 데이터를 남겨놓되 status를 비활성화 시키는 방식
- 회원가입 시 탈퇴 유저의 이메일과 중복체크를 하기 위해 Soft Delete 방식을 채택
- 탈퇴 유저의 이메일과 중복되게 회원가입을 요청할 시
400 Bad Request
오류 발생
- 오류 예시)
구현방법
- User Entity에 회원의 탈퇴 상태를 담을 수 있는 필드(deleted) 생성
*private boolean* deleted = Boolean.FALSE;
- 삭제 방식 변경
@SQLDelete
사용 : jpa repository의 delete 메서드를 사용할 때 update쿼리를 사용하게끔 설정
@SQLDelete(sql = "UPDATE user SET deleted = true WHERE id = ?")
- 쿼리 방식 변경
@SQLRestriction("deleted = false")
사용 : repository 영역에서 db의 data에 접근할 때 deleted 값이 false 인 필드에만 접근
- 삭제 메서드
- hard delete를 할 때처럼 jpa repository의 delete 메서드 사용