JPA - CASCADE , ORPHAN

mangez_js·2024년 6월 18일

Study

목록 보기
5/47

영속성 전이(CASCADE)


영속성 전이(CASCADE)

"CASCADE : 폭포, 폭포처럼 흐르다" 라는 사전적 의미를 바탕으로 엔티티의 상태를 변경할 때 해당 엔티티와 연관된 엔티티의 상태 변화를 전파시키는 옵션

  • 부모는 One에 해당하는 Entity
  • 자식은 Many에 해당하는 Entity
  • 부모 Entity가 존재해야 자식 Entity가 부모를 참조하며 생성될 수 있음

CASCADE 종류

CASCADE설명
PERSIST부모가 영속화될 때 자식도 영속화
MERGE부모가 병합될 때 자식도 병합
REMOVE부모가 삭제될 때 자식도 삭제
REFRESH부모가 refresh되면 자식도 refresh
DETACH부모가 detach 되면 자식도 detach
ALL부모의 상태 변화를 자식에게 모두 전이

주문 영속성 전이

  • 부모인 Order Entity가 저장될 때, 자식인 OrderItem 또한 저장되는 영속성 전이

고아객체(ORPHAN)


고아객체(ORPHAN)

부모 엔티티와 연관 관계가 끊어진 자식 엔티티

  • 자식의 엔티티를 다른 엔티티가 참조하고 있다면 제거 X

고아객체 제거

  • 부모 Entity에 ORPHANREMOVAL = true 설정

CASCADE.REMOVE VS 고아객체 제거

  • CASCADE.REMOVE - 부모 Entity가 삭제될 때 같이 삭제되는 것
  • 고아객체 제거 - 부모 Entity와의 연관관계가 끊어질 때 삭제되는 것

0개의 댓글