cascade
-
JPA에서 `orphanRemoval`과 `CascadeType.REMOVE` 차이JPA 2024. 10. 9. 23:21
개요JPA에서 orphanRemoval과 CascadeType.REMOVE는 엔티티 삭제 시 다른 방식으로 동작한다. 이 둘의 차이를 이해하려면 각각의 개념과 동작 방식을 알아야 한다.orphanRemoval과 CascadeType.REMOVE 기본 동작orphanRemoval부모 엔티티에서 자식 엔티티를 컬렉션에서 제거하면 자식 엔티티가 고아가 되어 자동으로 삭제된다.자식이 부모 엔티티 없이 존재할 수 없도록 한다.CascadeType.REMOVE부모 엔티티가 삭제될 때만 연관된 자식 엔티티가 함께 삭제된다.부모가 삭제될 때 자식도 함께 삭제되는 전이 동작을 의미한다.동일하게 동작하는 경우부모 엔티티가 삭제될 때, 자식 엔티티도 삭제되는 경우.orphanRemoval과 CascadeType.REMOVE..
-
JPA : 영속성 전이(Cascade)JPA 2024. 5. 2. 21:42
JPA에서 영속성 전이(Cascade)는 엔티티의 상태 변화를 관련된 엔티티들에게도 전파하는 메커니즘을 말한다. 즉, 한 엔티티에 대한 특정 연산(예: 저장, 삭제, 병합)이 그 엔티티와 관련된 다른 엔티티들에게도 적용되도록 할 수 있다. 이는 엔티티 간의 관계를 정의할 때 설정할 수 있는 옵션이며, 코드를 보다 깔끔하게 유지하고 데이터 일관성을 보장하는 데 도움이 된다.CascadeType 종류JPA에서는 다음과 같은 종류의 CascadeType 옵션이 있다.1. CascadeType.ALL설명: ALL 옵션은 모든 캐스케이드 타입(PERSIST, MERGE, REMOVE, DETACH, REFRESH)을 적용한다.모든 영속성 관련 연산이 연관된 모든 엔티티에도 적용된다.적용 사례: 엔티티와 연관된 모..