728x90
영속성 전이 cascade
- 객체를 저장하거나 삭제할 때 연관된 객체도 함께 저장하거나 삭제할 수 있는 것.
- JPA에서 엔티티를 저장할 때 연관된 모든 엔티티는 영속 상태이어야 한다.
cascade는 그럼 언제 써야 할까?
- Life Cicle이 일치 할 때
- 단일 엔티티에 종속적일 때
ex) 부모 엔티티를 저장할 때 자식 엔티티도 함께 저장해야 할 때 사용한다.
cascade는 연관관계와는 연관이 없다.
CASCADE의 종류
ALL: 모두 적용
PERSIST: 영속
부모와 자식 엔티티를 한 번에 영속화 가능
REMOVE: 삭제
부모 엔티티를 삭제하면 연관된 자식 엔티티도 함께 삭제.
MERGE: 병합
=> 보통 cascade = CascadeType.ALL을 사용한다.
고아 객체
- jpa는 부모 엔티티와 연관관계가 끊어진 자식 엔티티를 자동으로 삭제하는데 이것을 고아 객체 제거라고 한다.
- 부모를 제거하면 자식은 고아가 된다.
- orphanRemoval = true를 하게 되면 고아 객체 제거 기능이 활성화 된다.
영속성 전이 + 고아 객체, 생명주기
CascadeType.ALL + orphanRemoval = true를 동시에 사용하게 되면
부모엔티티를 통해서 자식의 생명주기를 관리할 수 있다.
'JPA' 카테고리의 다른 글
[JPA] 객체 지향 쿼리 언어, JPA와 JDBC 같이 사용 (0) | 2022.05.19 |
---|