본문 바로가기

spring

영속성 전이

영속성 전이 (cascade)
  • 특정 엔티티끼리 생명주기가 같은 경우가 있음
  • 예) 글(post)이 삭제되는 경우 글에 달린 댓글(comment)들은 독립적으로 존재할 수 없기 때문에 글이 삭제될 때 같이 삭제되어야 함
  • 엔티티 생명주기가 다른 엔티티와 연관되어 있는 경우 영속성 전이(cascade)를 사용해 관리
  • @ManyToOne(cascade=CascadeType.ALL)

 

엔티티 생명주기

 

영속성 전이 타입 종류
종류 설명
ALL 모든 작업(상태)에 대해 영속성 전이
PERSIST Persist할 때 연관된 엔티티도 Persist
MERGE 엔티티를 영속성 컨텍스트에 Merge할 때 연관 엔티티도 Merge
REMOVE DB와 영속성 컨텍스트에서 연관 엔티티도 제거
REFRESH 엔티티 새로고침 시 연관 엔티티도 새로고침
DETACH 엔티티를 영속성 컨텍스트에서 Detach하면 같이 Detach

 

  • PERSIST : 부모 엔티티를 영속화 할 때 관련된 자식 엔티티도 함께 영속화됨
  • REMOVE : 부모 엔티티를 REMOVE할 때 관련된 자식 엔티티도 함께 REMOVE됨
  • ALL : PERSIST와 REMOVE 기능을 모두 수행해주는 옵션

  • ALL, PERSIST 가장 많이 사용 !
  • PERSIST의 경우는 영속화는 함께 시키지만 삭제 시 함께 삭제되도록 하지 않는 옵션,
    ALL의 경우는 영속화와 삭제 모두 전이되도록 하는 옵션

 

 

 

 

'spring' 카테고리의 다른 글

HTTPS vs HTTP  (0) 2024.11.02
로깅(Logging)  (0) 2024.09.20
다대일 단/양방향 매핑  (0) 2024.09.15
연관관계 매핑 종류 / 방향  (0) 2024.09.15
JPA Auditing / Base Entity  (0) 2024.09.14