JPA CASCADE

yshjft·2022년 12월 31일
0

Spring, JPA

목록 보기
8/16

CascadeType.PERSIST

  • Parent가 저장될 때 Children도 함께 저장

    // one
    Parent parent = new Parent(); 
    
    // many
    Children children1 = new Children();
    Children children2 = new Children();
    
    parent.addChildren(children1);
    parent.addChildren(children2);
    
    // 자식까지 모두 저장
    em.persist(parent);
  • 주의 사항

CascadeType.REMOVE

  • Parent 삭제 시 Children도 삭제

Orphan removal = true

  • Children이 Parent에서 분리되는 경우(고아 상태) Children 삭제

CascadeType.REMOVE & Orphan removal = true 주의 사항

  • delete query는 children마다 따로 따로 발생한다.

cascade는 언제 사용해야 하나?

  • Cascade되는 엔티티와 Cascade를 설정하는 엔티티의 라이프사이클이 동일하거나 비슷해야한다.
  • Cascade되는 엔티티가 Cascade를 설정하는 엔티티에서만 사용되어야 한다.
  • 참고

참고

profile
꾸준히 나아가자 🐢

0개의 댓글