인프런 커뮤니티 질문&답변

김민지님의 프로필 이미지
김민지

작성한 질문수

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

값 타입 컬렉션

값타입과 엔티티의 디비에서의 차이

작성

·

408

0

 

1. 보통은 food_name까지 pk로안쓰고 member_id, food_id를 pk로쓴다는 점만 디비에서 다른건가요..?
2. 그럼 현재 이 클래스가 엔티티인지 그냥 값 타입인지는

@entity가 있냐없냐로 판단하는거죠..?

 

답변 2

1

안녕하세요 질문자님 일단 DB의 PK값에 대해 설명드려야 될거같습니다.

PK값은 Unique한 값입니다. Unique한 값에 Not Null 속성이 붙은것을 PK(Primary Key)라고 불리우죠.

하나의 테이블에 PK값이 2개일 수는 없습니다. 중복된 컬럼을 갖고있기 때문이죠.(Unique 속성)

하지만 왜 PK값이 2개인가? 라고 물으신다면 답변드릴수 있을거같습니다. 

다중칼럼(constraint) 로 맺으실수 있는데요, 이렇게 해서 맺어지는 이유는 기본키(pk)를 구성하는 id값이 두개의 칼럼을 하나로 치기 때문입니다.

즉, 2개의 칼럼이 하나로 묶일수는 있으나 그렇다고 PK값이 2개가 되는것은 아닙니다. id 구성으로는 하나인거지요.

DB관계도상 주 PK는 name가 아닌 FK가 맺어져 있는 MemberID값 같습니다.

정확히는 @entity가 있고 없고 로 구분한다기 보다는 @id 식별자가 있느냐 없느냐로 구분됩니다.

있으면 @entity, 없으면 값타입 이렇게 보시면 될거같습니다.

0

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

1. 네, 맞습니다. 값 타입 컬렉션의 경우 강의에서 언급되는 것과 같이 해당 객체의 값 전체와 외래키를 묶어 PK로 사용합니다.

2. 네, 맞습니다.

감사합니다.

김민지님의 프로필 이미지
김민지

작성한 질문수

질문하기