[WEB]Back-end/JPA
영속성 전이 :CASCADE
ABAP,ODATA,BTP
2022. 1. 17. 17:23
반응형
# 인프런 김영한의 자바 ORM 표준 JPA 프로그래밍 - 기본편을 개인적으로 정리한 글입니다.
정리
Q . 영속성 전이 : CASCADE가 뭐야?
A : 부모 Entity를 영속상태(em.persist)로 만들때 자식 Entity도 영속 상태로 만들고 싶을 때 사용한다.
==단지 엔티티의 영속화를 편하게 하기 위함이야.
Q . 주의 할점은 뭐야 ?
A : 연관관계를 DB와 Mapping하는것과는 아무런 상관이 없다! = 단지 영속화 할때 편리함을 더해주는 역할만 한다.
@OneToMany(cascade = CascadeType.ALL,orphanRemoval = true)
@JoinColumn(name = "member_id")
private List<AddressEntity> addressHistory = new ArrayList<>();
다음과 같이 연관관계 어노테이션 사용시 옆에 다음 옵션을 추가하여 사용한다.
Q . 고아 객체는 뭐야?
A : 부모 엔티티와 연관관계가 끊어진 자식엔티티를 말해! // 호적에서 사라진 아이들
Q . 고아 객체 제거시 주의할 점은 뭐야?
A : 특정 엔티티가 개인 소유할 경우에만 사용해야해!
즉 : Parent 와 Child 엔티티의 Lifecycle이 유사할때 사용해야해
단일 Parrent 만이 Child를 소유할때, 그리고 다른 Entity가 Child를 소유하지 않을때!
// 같은 가문일 때만 사용가능해
살펴보기
CASCADE의 종류는 다음과 같다.
• ALL: 모두 적용
• PERSIST: 영속
• REMOVE: 삭제
• MERGE: 병합
• REFRESH: REFRESH
• DETACH: DETACH
반응형