반응형
✔️ 영속성전이 (CASCADE)란 ?
- 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 전이되는 것
- 부모 엔티티가 영속화 될 때 자식 엔티티도 같이 영속화되고, 부모 엔티티가 삭제될 대 자식 엔티티도 삭제되는 등 함께 상태가 전이
- 특정 엔티티에 대한 특정한 작업이 이루어지면 관련된 엔티티에도 동일한 작업을 수행
✔️ CascadeType
JPA에는 관련 엔티티 간의 의존성을 설정하기 위해 Enum 타입의 javax.persistance.CascadeType을 제공한다.
CascadeType는 코드와 같이 PERSIST, MERGE, DETACH, PREFRESH, REMOVE, ALL 로 구성되어 있다.
- CascadeType.ALL
- 모든 Cascade를 적용
- 모든 상태 변화에 대해 연관된 엔티티에 함께 적용한다
- CascadeType.PERSIST
- 엔티티를 영속화 할 때, 연관된 엔티티도 함께 유지
- 실행시 연관된 엔티티를 함께 영속 객체로 추가한다
- CascadeType.MERGE
- 엔티티 상태를 병합 (Merge)할 때, 연관된 엔티티도 모두 병합
- 실행시 연관된 엔티티도 함께 관리 상태로 바꾼다. (UPDATE)
- CascadeType.REMOVE
- 엔티티를 제거할 때, 연관된 엔티티도 모두 제거
- 실행시 연관된 엔티티를 함께 영속 객체로 추가한다.
- CascadeType.DETACH
- 부모 엔티티를 준영속화 하면 (detach) 하면, 연관 엔티티도 준영속화상태가 되어 변경 사항이 반영되지 않음
- 실행시 연관된 엔티티를 함께 분리 상태로 만든다
- CascadeType.REFRESH
- 상위 엔티티를 새로고침(Refresh)할 때, 연관된 엔티티도 모두 새로고침
- 실행시 연관된 엔티티를 함께 다시 읽어온다.
반응형
LIST
'Java' 카테고리의 다른 글
[Java] N진수 변환 (0) | 2022.03.16 |
---|---|
[Java] String vs StringBuilder (0) | 2022.03.16 |
[Java] substring 함수 (0) | 2022.03.16 |
[프로그래밍] 자주쓰는 ASCII Code 정리 (0) | 2022.03.15 |