Cute Running Puppy
본문 바로가기
카테고리 없음

JPA 연관 관계(cascade, orphanRemoval) 없이 user 삭제하기 연습

by 징구짱 2023. 3. 21.
728x90

JPA는 연관 관계를 맺어놓으면 함부로 삭제를 하지 못 한다.

부모를 가진 자식 테이블이 고아가 될 수 없기 때문이다..!

 

 

DataBase 설계

사용자게시판과  일대다 관계

게시판좋아요와 일대다 관계

 

사용자 좋아요와 일대다 관계

 


회원 탈퇴를 하기 위한 삭제 순서

 

회원 탈퇴를 하기 위해서는 모든 관계를 제거해야한다 → 고아가 될 수 없어!

  1. 내가좋아요모두 삭제 → user_id를 기준으로 삭제

  2. 내가 쓴 게시글을 삭제하고 싶다!
    → 연관된 좋아요가 있으므로 먼저 제거를 해야한다!

    내가 쓴 게시글의 좋아요를 삭제 → post_id를 기준으로
    내가 쓴 ⭐
    모든게시글을 ✔️검색✔️하여 게시물 마다의 좋아요를 삭제한다.
  3. 게시글의 연관된 좋아요가 모두 삭제 됐으므로 게시판을 삭제 가능하다.
    내가 쓴 ⭐모든게시글을 삭제한다. → user_id를 기준으로 삭제
  4. 모든 연관 관계가 제거되었다면 이제 사용자를 삭제할 수 있다! 사용자인 나를 삭제한다 → user 삭제
728x90