영속성 전이 : CASCADE
: 얘는 연관관계, 즉시로딩 지연로딩과 아무 상관 없어여~
특정 엔티티를 영속 상태로 만들 때,
연관된 엔티티도 함께 영속 상태로 만들고 싶어요
ㄴ 부모 엔티티 저장할 때 자식 엔티티도 함께 저장하고 싶음...
부모를 persist 할 때,
얘랑 관련 된 자식들도 함께 persist 할 거야
@OneToMany(mappedBy="parent", cascade=CascadeType.ALL)
영속성 전이는 연관관계를 매핑하는 것과 아무 관련이 없다
엔티티를 영속화 할 때 편리함을 주는 것뿐
하나의 부모만 해당 자식들을 관리할 땐 좋다
좋은 예) 게시판, 첨부파일 경로... 게시판에서만 첨부파일 경로를 씀
나쁜 예) 자식이 여러군데에서 쓰이면 ㄴㄴ
고아 객체
고아 객체란????
부모 엔티티와 연관관계가 끊어져서 고아가 됨...
@OneToMany (orphanRemoval = true)
고아가 된 자식 엔티티를 자동으로 삭제해용...
부모 엔티티랑 연관관계가 끊어지면 자동 삭제
주의)
참조하는 곳이 하나일 때만 사용하세여!!!!
특정 엔티티가 개인 소유할 때만 사용하세여!!!!
@OneToMany @OneToOne 만 사용 가능
부모를 제거하면 자동적으로 자식도 제거됩니다, CASCADE REMOVE와 똑같이 동작함
영속성 전이 + 고아 객체를 같이 써볼까용?
CascadeType.ALL + orphanRemoval = true ??
부모가 자식의 생명주기 관리하게 됩니다
도메인 주도 설계(DDD)의 Aggreate Root 개념을 구현할 때 유용해용
'개발공부 개발새발 > DB' 카테고리의 다른 글
JPA ) JPA 요약 (내가 검색하는 용도) (2) | 2022.11.29 |
---|---|
JPA ) 여러가지 값 타입~ (0) | 2022.11.25 |
JPA) 즉시로딩과 지연로딩??? (0) | 2022.11.25 |
JPA) 프록시란 무엇인가 (0) | 2022.11.25 |
JPA) 상속관계 매핑 (여러 전략들과 @MappedSuperclass) (0) | 2022.11.25 |