Spring
[Spring] 영속성 전이 (Cascade)
Paragon53
2025. 4. 17. 10:30
Spring
🔥 Cascade
🎯 JPA에서 특정 엔티티를 저장, 삭제 등의 작업을 할 때 연관된 엔티티에도 동일한 작업을 자동으로
적용하도록 설정하는 기능
(❗ 영속성 전이는 지연로딩, 즉시 로딩과는 아무 관련이 없다)
✅ why ?
연관된 객체들은 별도로 저장, 삭제하지 않고도 하나의 작업으로 함께 처리 할 수 잇기 때문에 코드가 깔끔해지고 관리가 쉬움
부모 - 자식 관계에서 부모 엔티티만 신경 써도 자식 엔티티들이 함께 관리되니 일관성이 있는 데이터 처리 가능.
옵션 | 설명 |
PERSIST | 부모 저장 시 자식도 저장 |
REMOVE | 부모 삭제 시 자식도 삭제 |
MERGE | 병합(수정)시 자식도 병합 |
DETACH | 영속성 컨텐스트에서 분리시 자식도 함께 분리 |
REFRESH | DB로부터 다시 불러올 때 자식도 같이 불러옴 |
ALL | 위의 모든 옵션 포함(전체 전이) |
✅ 사용 방법
● 단일 Entity에 완전히 종속적인 경우 생명주기가 같다면 사용한다.
■ 블로그 글의 댓글처럼 항상 글을 통해서만 관리하는 경우
■ 상품과 상품 이미지처럼 특정 상품에 종속되어 관리되는 경우
● 작가와 책
■ 책은 특정 작가와 연관되지만 작가가 활동하지 않아도 책은 보존된다.
■ 이런 경우는 사용하지 않는다.
⚠️ 주의점
● 의미 있는 부모- 자식 관계(같은 생명주기를 가지는 연관된 객체 관계)에서만 사용해야 한다.
● 삭제 전이(Remove)는 예상치 못한 삭제 발생 가능성이 있다.