inflearn logo
강의

Course

Instructor

Java ORM Standard JPA Programming - Basics

many-to-many [N:M]

식별자 관리 질문드립니다.

Resolved

324

slipknot

1 asked

3

MemberProduct(Order)에 주문번호로 관리가 되면 ID는 그대로 두고 주문번호라는 컬럼을 추가하고 Unique 인덱스를 추가하는 것이 나은것인지 아니면 주문번호를 PK로 올리는 것이 맞는것인지 궁금합니다.         

java JPA

Answer 4

1

akakakakak

강사님, 이 질문의 답변 내용에 대해서 질문있습니다.

주문번호라는 새로운 컬럼을 추가하여 PK로 사용하신다는 것은 지금까지 강의에서 설명하셨던 것처럼 PK를 Generated Value로 사용하기 위함일거라고 생각되는데요.

어차피 Id라는 녀석이 있는데 왜 굳이 주문번호 컬럼을 추가하는지 모르겠습니다.

애초에 Id라는 값이 위의 목적에 부합하는 Generated Value이지 않나요? 그냥 Id를 바로 PK삼으면 될 것을 왜 굳이 주문번호를 추가하는지요?

 혹시 Id라는 값이 Generated Value로 주어진 PK로서의 역할만 하는 것이 아니라 비즈니스 로직에서 어떤 유의미한 값으로 사용될 수 있기 때문인가요? 

만약 이게 맞다면, 이러한 Id의 쓰임새에 대해서 간략하게 설명을 부탁드려도 될까요?

1

yh

안녕하세요 양광모님 좋은 질문입니다.

둘다 장단점이 있고, 내용이 너무 길어져서 제가 선호하는 방법을 말씀드리면, 저는 ID는 그대로 주고 주문번호 컬럼을 추가하는 방식으로 문제를 해결합니다.

자세한 내용은 JPA 책 220p ~ 234p 6.4 다대다 부분을 보면 두가지 케이스를 코드로 비교해서, 각 장단점과 궁금해 하시는 부분을 쭉 풀어서 설명해두었습니다.

감사합니다^^

0

yh

네^^

0

slipknot

빠른 답변 감사합니다~ 제 생각도 비즈니스 키를 별도로 추가해서 사용하는 것이 좋다고 생각되었는데 의견 감사드리고 JPA 책도 참조해보겠습다. 감사합니다.

Entity 동등성 비교

0

5

1

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

0

41

1

H2데이터베이스 파일 생성

0

51

2

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

0

49

2

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

0

48

1

JPQL 메소드와 락

0

52

1

Delivery @OneToOne

0

57

1

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

0

89

2

UnsupportedOperationException 발생

0

82

3

H2 Database 연결이 안됩니다.

0

89

2

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

0

82

2

h2데이터베이스 실행오류

0

105

2

persistence.xml

0

103

2

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

0

77

1

영속성 컨텍스트

0

62

1

JPA 프록시

0

90

1

Native Query와 MyBatis

0

63

1

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

0

83

1

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

0

112

3

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

0

90

3

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

0

106

2

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

0

136

1

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

0

68

1

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

0

95

1