• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

JPA 영속성 전이 질문드립니다.

22.05.22 12:26 작성 조회수 275

0

안녕하세요. JPA 영속성 전이와 관련하여 질문드립니다!

목적은 유저가 탈퇴한다고 가정했을때,

User 데이터를 delete할때 그와 관련된(외래키로 엮어져있는) 다른 테이블의 모든 데이터를 같이 삭제하고 싶습니다.  

 

users : apps = 1:N

users: resources = 1:N

app_resources = apps와 resources의 중간테이블(apps:resources = N:M 해결)

resources 슈퍼타입

scenes, avartar 서브타입

scenes: hubs = 1: N 

관계입니다.

 

위와같은 ERD에서 users테이블에 데이터를 삭제할경우 연관된 모든 데이터를 지우기 위해 아래의 사진과 같이 모두 양방향 연관관계를 추가하였습니다.

아래 사진처럼 작성했을경우 정상적으로 user에 관련된 데이터들이 모두 잘 삭제가 됩니다.

그런데 아래와 같이 모든 엔티티에서

@OneToMany 연관관계에 cascade = cascadeType.ALL, orphanRemoval = true 를 사용해도 괜찮은지 질문드립니다!

(화면에 다 넣으려니 잘 안보이네요 ㅠㅠ 확대해서 봐주시면 감사하겠습니다)

답변 1

답변을 작성해보세요.

0

David님의 프로필

David

2022.05.23

안녕하세요. gudrb33333님, 공식 서포터즈 David입니다.

OneToMany에서 Cascade를 사용하면 안되는 케이스는 '영속성 전이(CASCADE)와 고아 객체'편 10분35초부터 참고해주세요.

감사합니다.