inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

자바 ORM 표준 JPA 프로그래밍 - 기본편

하나의 컬럼이 둘 이상 연관관계를 맺는 경우 질문입니다.

522

신짱

작성한 질문수 11

0

안녕하세요 영한님.

매번 좋은 강의 감사드립니다.

다름이 아니라 하나의 컬럼이 둘 이상의 연관관계를 맺는 경우(?)는 어떻게 처리를 해야될지 고민이어서 질문을 남깁니다.

일단 간단히 테이블간 erd를 그려보면 아래와 같습니다.

회원과 관리자, 요청 3개의 테이블이 있습니다.

요청 테이블에는 요청자에 대한 정보를 저장하는데 요청자는 회원 또는 관리자가 될 수 있습니다.

요청자ID(FK)에는 회원ID 또는 관리자ID가 저장이 되고 요청자유형으로 회원인지 관리자인지 구분을 할려고 합니다.

그런데 JPA에서 엔티티를 작성할려고 보니 애매하더라구요..

이렇게 하나의 컬럼이 둘 이상 연관관계를 맺게 되는 경우는 어떻게 처리를 해야 될까요..?

그냥 요청자ID 하나에 회원ID와 관리자ID 둘 중 하나를 받지 않고 요청 테이블에서 관리자ID(FK), 회원ID(FK) 각각 따로 받는게 더 좋은 방법인지도 잘 모르겠습니다.

답변 부탁드립니다

감사합니다..!

java JPA

답변 1

1

김영한

안녕하세요. 치훈이님

이 문제는 회원과 관리자 테이블을 하나로 통합하고, 통합한 회원 테이블에 Type 정보를 두고, 일반 회원인지 관리자인지 구분하는게 더 나은 방법이라 생각합니다.

만약 그래도 유지하고 싶다면 하나의 컬럼이 둘 이상 연관관계를 맺는 부분은 JPA에서 지원하지 않습니다. 따라서 엔티티 연관관계를 설정하지 않고 직접 id를 관리해야 합니다.

그리고 이런 관계를 arc 관계라고 하는데요. 다음을 참고해주세요.

https://www.inflearn.com/questions/14583

감사합니다.

0

신짱

답변감사합니다.

이런 관계를 arc 관계라고 하는군요ㅎㅎ

추가해주신 답변보고 다시한번 고민해보겠습니다. 감사합니다!

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

0

38

1

H2데이터베이스 파일 생성

0

46

2

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

0

48

2

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

0

45

1

JPQL 메소드와 락

0

48

1

Delivery @OneToOne

0

54

1

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

0

85

2

UnsupportedOperationException 발생

0

80

3

H2 Database 연결이 안됩니다.

0

87

2

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

0

78

2

h2데이터베이스 실행오류

0

103

2

persistence.xml

0

101

2

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

0

75

1

영속성 컨텍스트

0

60

1

JPA 프록시

0

87

1

Native Query와 MyBatis

0

62

1

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

0

81

1

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

0

110

3

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

0

89

3

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

0

102

2

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

0

134

1

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

0

67

1

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

0

95

1

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

1

172

2