2024.07.15
🔥오늘의 공부🔥
● 1. CascadeType
● 2. orphanRemoval
Entity간 관계를 정의할 때 사용될 수 있는 설정
1. CascadeType ( 영속성 전이 )
Entity 클래스 중 @OneToMany인 1에 해당하는 부모클래스에게 줄 수 있는 옵션으로, 해당 옵션은 연관 관계가 맺어져 있는 자식 엔티티에 부모 엔티티의 영속성 상태를 전이를 시켜주는 옵션이다. 해당 옵션을 사용하면, 아래 해당 이미지에서는 REMOVE 옵션을 사용하고 있지만, 저장, 병합, ALL 등 다양한 옵션이 있지만 여기서는 REMOVE만을 다루겠다.
아래 옵션을 사용하게 되면 부모 엔티티가 삭제 될 때, 자식 엔티티도 같이 삭제를 도와준다. 즉, 영속성을 전이 시켜준다.
2. orphanRemoval ( 고아 Entity 삭제 )
부모 엔티티와 연관된 자식 엔티티가 더 이상 부모엔티티와의 연관 관계가 없는 경우 자식 엔티티를 자동으로 삭제할지 말지 지정해주는 연관관계 설정이다. 해당 설정은 OneToMany 또는 OneToOne 관계에서 사용을 하게되며, 해당 설정의 디폴트 값은 false이다.
3. 두 설정의 특징
둘의 특징으로는 모두 Many에 설정을 해주기 때문에 Many엔티티에서 One엔티티로의 관계에서만 작동을 한다.
즉, 부모 엔티티의 변화 및 연관관계를 끊어 주는 방향 또한 Many -> One 이어야 동작을 한다는 의미이다.
회고
Entity 연관 관계의 설정에 대해서 알아보았는데, 생각보다 어려운 개념이라 JPA 처음에 배울 때는 이해가 가지 않았던 내용이었다. JPA를 쓰다보니 익숙해져 다시 보게되었는데 지금은 이해를 할 수 있게 되었다. 성장을 했다는 증거이다!!!
'내일배움캠프 Spring 5기' 카테고리의 다른 글
EduWithMe-Project (0) | 2024.09.03 |
---|---|
내일배움캠프 61일차 TIL - 쿼리 최적화 (0) | 2024.07.13 |
내일배움캠프 60일차 TIL - Security 예외처리 (0) | 2024.07.13 |
내일배움캠프 59일차 TIL - 심화 프로젝트 설계 (0) | 2024.07.10 |
내일배움캠프 58일차 TIL - Redis (0) | 2024.07.09 |