🧬 영속성 전이 + 고아 객체, 생명주기

일반적으로 엔티티는 em.persist()를 통해 영속화하고 em.remove()를 통해 제거된다. 엔티티 스스로 생명주기를 관리한다는 뜻이다.

여기서 CascadeType.ALL + oprhanReomval=true를 모두 활성화하면 부모 엔티티를 통해 자식의 생명주기를 관리할 수 있다.

//자식을 저장하려면 부모에게 등록만 하면 된다.(CASCADE)Parent parent = em.find(Parent.class, parentId);parent.addChild(child);
//자식을 삭제하려면 부모에서 제거하면 된다.(oprhanReomval)Parent parent = em.find(Parent.class, parentId);parent.getChildren().remove(removeObject);

영속성 전이는 도메인 주도 설계(DDD)의 Aggregate Root 개념을 구현할 때 유용하다.