데브허브 | DEVHUB | Top Interview Question | CascadeType in JPA Explained with Real Examples @JavatechieTop Interview Question | CascadeType in JPA Explained with Real Examples @Javatechie
- JPA CascadeType은 부모 엔티티에 대한 작업(저장, 업데이트, 삭제 등)이 자식 엔티티에 어떻게 영향을 미칠지 정의합니다. 🔗
- CascadeType을 정의하지 않으면, 부모 엔티티 작업 시 자식 엔티티는 영향을 받지 않아 별도로 처리해야 합니다. 🚫
CascadeType.PERSIST는 부모 엔티티를 저장할 때 연관된 자식 엔티티도 함께 저장합니다. 💾
CascadeType.MERGE는 부모 엔티티를 업데이트할 때 연관된 자식 엔티티도 함께 업데이트합니다. 🔄
CascadeType.REMOVE는 부모 엔티티를 삭제할 때 연관된 자식 엔티티도 함께 삭제하여 참조 무결성 제약 조건 위반을 방지합니다. 🗑️
CascadeType.REFRESH는 부모 엔티티를 데이터베이스에서 새로 고칠 때, 메모리 내 자식 엔티티의 변경 사항을 무시하고 데이터베이스의 최신 상태로 동기화합니다. 💧
CascadeType.DETACH는 부모 엔티티를 영속성 컨텍스트에서 분리할 때, 연관된 자식 엔티티도 함께 분리합니다. 👻
CascadeType.ALL은 모든 CascadeType(PERSIST, MERGE, REMOVE, REFRESH, DETACH)을 포함하지만, 항상 사용하는 것은 권장되지 않으며 특정 사용 사례에 맞춰 선택하는 것이 좋습니다. 🌟