Skip to content
Discussion options

You must be logged in to vote

Cascade

  • JPA에서 엔티티 간의 관계를 설정할 때 사용하는 중요한 개념 중 하나이다.
  • cascade 옵션을 사용하여 부모 엔티티에 대한 작업이 자식 엔티티에도 자동으로 전파된다.

장점

  • 코드의 간결성 유지
  • 데이터의 일관성 보장

유형

  • CascadeType.PERSIST

부모 엔티티가 저장될 때, 자식 엔티티도 함께 저장

  • CascadeType.MERGE

부모 엔티티가 병합될 때, 자식 엔티티도 함께 병합

  • CascadeType.REMOVE

부모 엔티티가 삭제될 때, 자식 엔티티도 함께 삭제

  • CascadeType.REFRESH

부모 엔티티를 새로 고칠 때 자식 엔티티도 함께 새로 고침

  • CascadeType.DETACH

부모 엔티티가 영속성 컨텍스트에서 분리될 때, 자식 엔티티도 함께 분리된다

  • CascadeType.ALL

위의 모든 CascadeType 옵션을 적용한다

부모 엔티티의 모든 생명주기 변경에 대해 자식 엔티티에 동일하게 적용된다

주의사항

  • CascadeType.ALL 을 무분별하게 사용하는 것은 좋지 않다. 실제로 필요한 옵션을 선택해서 사용하는 것이 좋다
  • cascade 설정은 부모 엔티티의 관계 매핑 코드 내에서 작성해야 한다.
  • orphanRemoval = true : 부모 엔티티에서 자식 엔티티를 리스트에서 제거할 때, db에서 해당 자식 엔티티가 삭제되도록 설정하여 고아 객체 제거

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by chaelink
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1 participant