영속성 전이(CASCADE)
-특정 엔티티를 영속상태로 만들때 연관된 엔티티도 함께 영속 상태로 만들고 싶을때
-(e.g. 부모 엔티티 저장할때 자식도 함께 저장)
-@OneToMany(mappedBy="parent", cascade=CascadeType.ALL)
-부모를 persist할때 어노테이션 붙은 컬렉션등도 함께 persist(연쇄 반응)
주의
-연관관계 매핑하는것과 아무 상관이없음
-연관된 엔티티도 함께 영속화하는것임
-부모와 자식의 라이프 사이클이 동일하고 단일 엔티티에 종속적일때만 사용
고아 객체
-@OneToMany(mappedBy="parent", cascade=CascadeType.ALL, orphanRemoval = true)
-고아 객체 삭제: 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제하는 기능
-참조하는 곳이 하나일때 사용 해야함
-특정 엔티티가 개인 소유할때 사용
-부모를 제거하면 자식은 고아가 되고, orphanRemoval = true 이면 자식도 함께 제거됨
생명주기
-cascade=CascadeType.ALL + orphanRemoval = true
-부모는 본인이 능동적으로 생명주기를 관리하지만 자식은 부모에 의해서 수동적으로 생명주기가 관리됨(동기)
'웹 프로그래밍 > JPA' 카테고리의 다른 글
객체 지향 쿼리 언어_기본 (0) | 2023.03.07 |
---|---|
기본값 타입, 임베디드 타입 (0) | 2023.03.06 |
즉시로딩과 지연로딩 (0) | 2023.03.04 |
프록시 (1) | 2023.03.04 |
고급 매핑 (0) | 2023.03.04 |