orphanRemoval=true
-
CacadeType.REMOVE 와 orphanRemoval = true의 차이Spring 2022. 2. 24. 09:15
프로젝트 리팩토링을 진행하면서 연관관계의 데이터(1:N 부모 자식)에 옵션을 넣어줄 때 자식 데이터 삭제시 옵션을 주다가 궁금증이 생겨 찾아보게 되었다. CascadeType.REMOVE(부모 삭제시 자식 삭제) orphanRemoval = true(고아 객체 삭제) 공통점 (parentRepository.delete(parent)) parent의 삭제시 child도 함께 삭제시키는 것은 동일 차이점 (parent.getChild().remove()) 부모 엔티티에서 자식 엔티티 관계 삭제시 관계만 끊어질 뿐 부모 부분이 null로 들어간 자식 엔티티를 삭제하진 않는다. (parent.getChild().remove()) 부모 엔티티가 자식 엔티티의 관계를 삭제할 경우 남은 자식은 고아로 취급되어 그대로..