영속성 전이 (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 |