Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- MappedSuperclass
- 영속성 컨텍스트
- relational DB
- 순수jpa
- 영속성전이
- JPA
- 페치조인
- 엔티티 매핑
- Spring Data JPA
- DiscriminatorColumn
- 지연로딩
- fetch join
- 분할상환분석
- relational database
- 정렬
- Spring
- DiscriminatorValue
- commit
- Algorithm
- 관계형 데이터베이스
- Embeddable
- Amortized Analysis
- 값타입
- Flush
- ROLLBACK
- DB
- n+1문제
- 플러시
- 즉시로딩
- 고아객체
Archives
- Today
- Total
Jun's note
[JPA] 영속성 전이(CASCADE)와 고아 객체 본문
728x90
먼저 영속성 전이에 대해 정리할것이다.
영속성 전이는 프록시나 지연로딩과 관련 없는 내용이다. (연관관계랑 관련 x)
이 점을 주의해야한다!
1. 영속성 전이(CASCADE)
부모 엔티티를 저장할때 자식 엔티티도 저장되도록 (부모를 기준으로 개발)
- 목적 : 개발의 편리함 때문
- 부모와 자식은 상속관계는 x
- 예를 들어, Member엔티티안에 Team도 있다면, Member객체를 저장할때 Team도 자동 저장되도록
- 엔티티를 영속화할 때 연관된 엔티티도 함께 영속화하는 편리함을 제공 (주의!!!)
- 사용 방법: cascade 사용
- @OneToMany(mappedBy="parent", cascade=CascadeType.ALL)
- 주의사항
- 부모랑 자식의 라이프스타일이 비슷할 경우에 사용(둘다 수정한다던지, 둘다 삭제한다던지)
- child랑 관련된 엔티티가 부모뿐일 경우에 사용(단일소유자)
2. 고아객체
연관관계가 끊어진 엔티티
- 연관관계가 끊어진 엔티티(고아객체)를 삭제해줘야한다. -> 자동 삭제됨
- 사용 방법: orphanRemovel=true 속성
3. 영속성 전이 + 고아객체
부모 엔티티를 통해 자식의 생명주기를 관리할 수 있음
영속성 전이 + 고아 객체 생명주기를 같이 다룰 수 있다.
why? 부모 객체만 삭제해도 그 안에 있는 자식 목록들도 자동 삭제되니, 부모엔티티만으로 자식 생명주기를 관리할 수 있음
'Programming > JPA' 카테고리의 다른 글
[JPA] 페치조인 (fetch join) , n+1문제 (0) | 2022.01.24 |
---|---|
[JPA] 값 타입 (기본값 타입, 임베디드 타입, 컬렉션 값 타입) (0) | 2022.01.24 |
[JPA] 프록시(Proxy), 지연로딩(LAZY)와 즉시로딩(EAGER) (0) | 2022.01.23 |
[JPA] 상속관계매핑, @MappedSuperclass (0) | 2022.01.14 |
[JPA] 다양한 연관관계 매핑 (다대일, 일대다, 일대일, 다대다) (0) | 2022.01.13 |
Comments