songining
Published 2022. 1. 17. 00:33
SpringBoot JPA CASCADE 예제 BACKEND/Spring
@OneToMany(mappedBy = "parent",cascade = CascadeType.ALL) //childList까지 함께 persit 날려주겠다는 얘기
private List<Child> childList = new ArrayList<>();

위와 같이 특정 필드에 cascade 설정을 할 경우 parent를 persist할 때 childList도 함께 persist 된다. 

 

Ex)

Child child1 = new Child();
Child child2 = new Child();

Parent parent = new Parent();
parent.addChild(child1);
parent.addChild(child2);

em.persist(parent);

위와 같이 parent만 persist 해주어도 그 child도 전부 persist 된다.  

 

CascadeType.All -> 모든 life cycle를 같이 함

CascadeType.PERSIST -> 추가만 같이하고 나머지는 따로 

 

CascadeType.All & orphanRemoval=True 인 경우 

=> child의 생명주기를 parent가 관리하게 된다. 

 

단, 이와 같은 사용은 반드시 child가 parent하고만 연관관계가 존재할 때 사용한다. 

'BACKEND > Spring' 카테고리의 다른 글

값 타입 컬렉션  (0) 2022.01.18
임베디드 타입 사용방법  (0) 2022.01.18
프록시  (0) 2022.01.16
상속관계 매핑 + 고급 매핑  (0) 2022.01.15
pk 사용 전략  (0) 2022.01.13