inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

Persistence Propagation (CASCADE) and Orphan Object

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

416

gudrb33333

2 asked

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 를 사용해도 괜찮은지 질문드립니다!

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

jpa JPA java

Answer 1

0

David

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

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

감사합니다.

실무 조언 관련 질문입니다.

0

41

1

H2데이터베이스 파일 생성

0

49

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

49

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

47

1

JPQL 메소드와 락

0

50

1

Delivery @OneToOne

0

57

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

88

2

UnsupportedOperationException 발생

0

82

3

H2 Database 연결이 안됩니다.

0

87

2

연관관계 매핑 질문드립니다.

0

81

2

h2데이터베이스 실행오류

0

104

2

persistence.xml

0

102

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

77

1

영속성 컨텍스트

0

62

1

JPA 프록시

0

89

1

Native Query와 MyBatis

0

63

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

82

1

임베디드 타입 예시 코드 관련 질문

0

112

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

90

3

인텔리제이 패키지 커서 단축키 질문

0

106

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

135

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

68

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

175

2