[Spring] 영속성전이, cascade (댓글이 있는 게시글 삭제 오류 해결)

류재성's avatar
Mar 25, 2024
[Spring] 영속성전이, cascade (댓글이 있는 게시글 삭제 오류 해결)
 

1. 게시글 삭제 오류

 
notion image
 
 
 
notion image
 
notion image
 
💡
댓글이 달려있는 게시글을 삭제하려면 제약 조건 위배로 오류가 발생한다. 해결을 위해 3가지 방법이 있다. 1. 댓글 삭제 후 게시글 삭제(Cascade 어노테이션 활용)
  1. 댓글의 FK값을 null 로 변경하고 삭제
  1. 처음부터 FK 를 걸지 않는다.
여기서는 1번 방법을 사용한다.
 
 

2. 영속성전이 Cascade 어노테이션

 
💡
영속성전이(Cascade)는 특정 엔티티를 영속상태로 만들 때 연관관계에 있는 엔티티도 함께 영속상태로 만들기 위해서 사용한다. 예를들어 부모 엔티티가 영속화 될 때 자식 엔티티도 영속화 되도록 한다.
 

2.1 Cascade 유형

 
  • PERSIST: 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장된다.
  • MERGE: 부모 엔티티의 상태를 병합할 때 자식 엔티티의 상태도 함께 병합된다.
  • REFRESH: 부모 엔티티의 상태를 새로고침할 때 자식 엔티티의 상태도 함께 새로고침된다.
  • REMOVE: 부모 엔티티를 삭제할 때 자식 엔티티도 함께 삭제된다.
  • ALL: 모든 종류의 연산(저장, 병합, 삭제, 새로고침)이 자식 엔티티에도 적용된다.
 
 

2.2 Cascade 를 활용한 게시글 삭제

 
notion image
 
notion image
 
 
notion image
 
notion image
 
4번 게시글이 삭제되면서 게시글의 댓글도 함께 삭제되었다.
Share article

{CODE-RYU};