영속성 전이 옵션을 무분별하게 사용할 경우 삭제되지 말아야 할 데이터가 삭제될 수 있어 조심히 사용해야 함
고아 객체 제거하기
고아 객체: 부모 엔티티와 연관 관계가 끊어진 자식 엔티티
고아 객체 제거 기능은 참조하는 곳이 하나일 때만 사용해야 함
@OneToMany 어노테이션에 "orphanRemoval = true" 옵션 사용
@Test@DisplayName("고아객체 제거 테스트")publicvoidorphanRemovalTest(){
Order order = this.createOrder();
order.getOrderItems().remove(0); // order 엔티티에서 관리하고 있는 orderItem 리스트의 0번째 인덱스 요소 제거
em.flush();
}
Cascade 옵션 중 REMOVE: 부모 엔티티가 삭제될 때 연관된 자식 엔티티도 함께 삭제