영속성 전이 (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' 카테고리의 다른 글
| @Transactional 이해하기 - 내부 동작 및 주의사항 포함 (0) | 2025.05.05 |
|---|---|
| 로깅(Logging) (0) | 2024.09.20 |
| 다대일 단/양방향 매핑 (0) | 2024.09.15 |
| 연관관계 매핑 종류 / 방향 (0) | 2024.09.15 |
| JPA Auditing / Base Entity (0) | 2024.09.14 |