개집사의 개발새발

반응형

영속성 전이(cascade)

사전적 정의: 작은 폭포, 폭포처럼 흐르다

엔티티의 상태를 변경할 때 해당 엔티티와 연관된 엔티티의 상태 변화를 전파시키는 옵션

이때 부모는 One, 자식은 Many

 

영속성 전이 옵션을 무분별하게 사용할 경우 삭제되지 말아야 할 데이터가 삭제될 수 있어 조심히 사용해야 함

 


고아 객체 제거하기

고아 객체: 부모 엔티티와 연관 관계가 끊어진 자식 엔티티

 

고아 객체 제거 기능은 참조하는 곳이 하나일 때만 사용해야 함

@OneToMany 어노테이션에 "orphanRemoval = true" 옵션 사용

   @Test
    @DisplayName("고아객체 제거 테스트")
    public void orphanRemovalTest(){
        Order order = this.createOrder();
        order.getOrderItems().remove(0); // order 엔티티에서 관리하고 있는 orderItem 리스트의 0번째 인덱스 요소 제거
        em.flush();
    }

 

Cascade 옵션 중 REMOVE: 부모 엔티티가 삭제될 때 연관된 자식 엔티티도 함께 삭제

고아 객체: 연관 관계가 끊어지는 것

반응형
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band