특정 엔티티를 영속 상태로 만들 때 **연관된 엔티티도 함께 영속 상태
**로
만들고 싶으면 JPA는 CASCADE 옵션으로 영속성 전이를 제공
CascadeType.PERSIST
@Entity
public class Parent {
...
@OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST)
private List<Child> children = new ArrayList<Child>();
...
}
private static void save(EntityManager em) {
Child child1 = new Child();
Child child2 = new Child();
Parent parent = new Parent();
child1.setParent(parent);
child2.setParent(parent);
parent.getChildren().add(child1);
parent.getChildren().add(child2);
em.persist(parent); // child도 영속성 전이로 저장
}
이렇게 **부모만 영속화
**하면 CascadeType.PERSIST로 설정한 **자식 엔티티까지 함께 영속화
**해서 저장
CascadeType.REMOVE
@Entity
public class Parent {
...
@OneToMany(mappedBy = "parent", cascade = CascadeType.REMOVE)
private List<Child> children = new ArrayList<Child>();
...
}
Parent findParent = em.find(Parent.class, 1L);
em.remove(findParent);
이처럼 CascadeType.REMOVE로 설정하고 부모 엔티티만 삭제하면 자식 엔티티도 함께 삭제