• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

일대다 관계에서의 값타입 질문입니다.

23.04.22 21:26 작성 23.04.22 21:27 수정 조회수 388

0

@OneToMany
@JoinColumn(name = "MEMBER_ID")
private Order order;

@OneToMany
@JoinColumn(name = "MEMBER_ID")
private List<Order> orders;

 

두개가 무슨 차이가 있는지 궁금합니다.

일대다 관계라면 컬렉션을 안써도 되지 않나요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2023.04.24

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

hjemsti 님의 질문을 제가 잘 이해했는지 자신이 없습니다.

위의 부분이 값타입 컬렉션과 관계가 있는 부분이 아닌 것 같습니다.
그게 아니라 위의 코드처럼 일대다 관계 엔티티 매핑에 대해서 왜 컬렉션 타입으로 해줘야 하는 지 궁금하신 것이라면, 저는 간단하다고 생각합니다.

사람 과 휴대폰의 관계라고 했을 때

사람은 휴대폰을 0~ N개를 소유할 수 있습니다. 이를 일대다 관계로 매핑하겠습니다.

작성해주신 첫번째 코드는 0 ~ 1개의 휴대폰을 가진 사람만 표현할 수 있습니다. 하지만 컬렉션으로 주면 그 사람이 1개 이상의 휴대폰을 가진 것도 잘 표현할 수 있지 않을까 생각합니다.

아니면 직접 위에 작성하신 코드를 테스트해보실 때 한 사람이 여러 개의 주문을 했다고 가정하고 각 코드마다 테스트를 만들어서 해보시면 직관적으로 차이를 알 수 있으실 것이라 생각합니다.

감사합니다.

hjemsti님의 프로필

hjemsti

질문자

2023.04.24

아 다시보니 제가 잘못이해했습니다. 일대다 관계로 0~N을 표현할 수 있지만,

컬렉션으로 주면 0~N을 표현할 수 있고, 단순 객체로 주면 0~1밖에 표현할 수 없는 것이 맞나요 ?

y2gcoder님의 프로필

y2gcoder

2023.04.24

네 맞습니다. ㅎㅎ