부모 엔티티를 영속 상태로 만들때 자식 엔티티도 함께 영속 상태로 만드는 등 특정 엔티티를 영속 상태로 만들때 연관된 엔티티도 함께 영속 상태로 만드는 작업을 영속성의 전이라고 한다.
@OneToMany 애너테이션에 cascade 속성을 CascadeType.ALL으로 설정하면 영속성의 전이를 사용할 수 있다.
연관관계의 매핑과는 아무런 상관 없고 그냥 엔티티를 영속화할 때 관련된 엔티티를 함께 영속화할 수 있어 좀 더 편하게 개발할 수 있다는 의미를 가진다.
해당 엔티티가 단일 엔티티에 종속적인 경우 사용하면 좋지만, 엔티티가 복잡하게 엮여있는 경우 의도하지 않은 결과가 발생할 수 있으니 조심해서 사용하자.
영속성의 전이와 비슷한 개념으로 고아 객체 개념이 있다.
부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제하는 작업으로, 참조가 제거된 엔티티는 다른 곳에서도 참조하지 않는 고아 객체로 판단하고 삭제하는 기능이다.
@OneToMany 애너테이션에 orphanRemoval 속성을 조작해서 설정하고, 반드시 참조하는 곳이 하나일 경우만 사용해야 한다.
두 가지 개념을 적절히 사용해 자식의 생명주기를 부모가 관리하도록 설계할 수 있다. (도메인 주도 설계 시 유용하게 사용된다)