back/JPA

[JPA] cascade

펭귄대장 2022. 11. 10. 01:37

영속성 

CascadeType.ALL: 모든 Cascade를 적용
CascadeType.PERSIST: 엔티티를 영속화할 때, 연관된 엔티티도 함께 유지
CascadeType.MERGE: 엔티티 상태를 병합(Merge)할 때, 연관된 엔티티도 모두 병합
CascadeType.REMOVE: 엔티티를 제거할 때, 연관된 엔티티도 모두 제거
CascadeType.DETACH: 부모 엔티티를 detach() 수행하면, 연관 엔티티도 detach()상태가 되어 변경 사항 반영 X
CascadeType.REFRESH: 상위 엔티티를 새로고침(Refresh)할 때, 연관된 엔티티도 모두 새로고침

 

Question N : User 1 관계일 때

User user = new User(?);

Question question = Question.builder(?).title(?).user(user).build();

questionRepository.save(question);

할 경우 exception 발생.

=> Question Entity 연관관계 매핑(@ManyToOne)에서 CascadeType.PERSIST 를 지정할 경우 User 객체도 영속성이 전이됨(영속화)

 

 

https://zzang9ha.tistory.com/350

 

반응형