티스토리 뷰
📌 Cascade
해당 Entity의 상태(영속성)가 변하면, 연관된 Entity도 상태가 변한다. (전이)
CascadeType
ALL : 부모 엔티티의 모든 상태 변화가 자식 엔티티에 전이된다.
PERSIST : 부모 엔티티가 영속 상태가 되면, 자식 엔티티도 영속 상태가 된다.
MERGE : 부모 엔티티에 merge()를 하면, 자식 엔티티에도 전이된다. (준영속 → 영속)
REMOVE : 부모 엔티티가 삭제되면, 자식 엔티티도 삭제된다.
📌 orphanRemoval = true
@OneToOne, @OneToMany 에서 사용할 수 있다.
부모 엔티티와 연관관계가 끊긴 자식 엔티티(고아 객체)는 DB에서 삭제된다.
📌 CascadeType.REMOVE & orphanRemoval = true
부모 엔티티를 삭제하면 자식 엔티티도 삭제된다는 점에서는 동일하다.
차이점
CascadeType.REMOVE
→ 부모 엔티티에서 자식 엔티티를 지워도(연관관계를 끊어도 → list.remove() , null) 영향이 없다.
orphanRemoval = true
→ 부모 엔티티에서 자식 엔티티를 지우면 db에서 삭제된다.
📌 Reference
https://tecoble.techcourse.co.kr/post/2021-08-15-jpa-cascadetype-remove-vs-orphanremoval-true/
https://www.baeldung.com/jpa-cascade-remove-vs-orphanremoval
'dev_note > TIL' 카테고리의 다른 글
@Modifying 알아보기 (0) | 2022.06.26 |
---|---|
JpaRepository save 관련 메소드 알아보기 (0) | 2022.06.26 |
Spring Boot Custom Validation Annotation 만들기 (0) | 2022.06.18 |
Model 유효성 에러 Filter로 처리하기 (0) | 2022.06.09 |
DataAnnotation Required 조건 주기 (0) | 2022.06.09 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JPA
- DataAnnotation
- OWIN
- 고아 객체
- 스프링 부트 테스트
- 영속성
- @Modifying
- 스프링MVC
- Nullable
- orphanRemoval
- jQuery
- JavaScript
- 빌더 패턴
- 준영속
- ASP.NET
- 스프링
- C# 문법
- MSSQL
- 토비의 스프링
- SpringBoot
- c#
- Java
- 다이내믹 프록시
- Effective Java
- 자바의 정석
- default interface
- Spring
- spring boot
- uploadfive
- JpaRepository
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함