cascade 옵션, orphanRemoval 옵션

(강의 링크 - https://inf.run/XKQg)

cascade 옵션 이란?

한 객체가 저장되거나 삭제될 때, 그 변경이 폭포처럼 흘러

연결되어 있는 객체도 함께 저장되거나 삭제되는 기능

유저와 빌린 책 1, 2

유저를 삭제하면 DB에서는 어떤 데이터가 삭제될까?

=> 유저만 사라짐

 

유저는 사라졌지만 기록은 남아있는 경우가 있어서 기록까지 다 삭제시키는 것이 cascade 옵션

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
  private List<UserLoanHistory> userLoanHistories = new ArrayList<>();

 

 

orphanRemoval 옵션

유저와 유저가 빌린책 1, 2중 1만 관계를 끊어내어 DB에서 지우고 싶을 때

@OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true)
private List<UserLoanHistory> userLoanHistories = new ArrayList<>();

=> 객체간의 관계가 끊어진 데이터를 자동으로 제거하는 옵션

관계가 끊어진 데이터 = orphan (고아)

제가 = removal

 

 

 

 

 

댓글을 작성해보세요.