인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

단무지님의 프로필 이미지
단무지

작성한 질문수

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

연관관계에 대한 질문이 있습니다!

해결된 질문

작성

·

259

0

안녕하세요 강사님 jpa시리즈를 다 보고 기초를 다시 보고있는 도중 궁금한 점이 생겨서 질문 남겨봅니다!

우선 Member 와 OrderItem이라는 엔티티가 있을때, 만약 양방향 관계를 설정한다면

@Entity

public class Member {

@OneToMany(mappedby = member)

privte List<Order> orders = new ArrayList<>();

}

@Entity

public class Order {

@ManyToOne

@JoinColumn("member_id")

private Member member;

}

이런식으로 설계가 되겠는데, 강사님 께서는 Member에서 Orders를 갖고 있는게 좋은 설계가 아니라고 생각한다는 말씀을 하셨는데(실전예제2- 09:00),

그럼 Member엔티티에서 Order에 대한 연관관계를 지우면 Order에서 Member로 가는 단방향 연관관계만 남아있는데,

저는 여기서 Order에서 Member에 대한 연관 관계가 필요한지 궁금하더라고요. Orders를 가져올때 회원 아이디가 일치하는지 조회하는 정도만 한다면, 연관 관계를 빼고 

@Entity

public class Order {

private Long memberId;

}

이런식으로 갖고 있어도 되는건지 궁금하더라고요.. 아님 필요 없더라도 무조건 Member에 대한 연관관계를 넣어주는 게 맞는건지 모르겠습니다 ..!

답변 1

3

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 참치캔님 좋은 질문입니다^^

생각하신 것 처럼 Order -> Member의 연관관계를 빼고 id만 가지고 있어도 됩니다^^

이렇게 하면 설계가 단순해지는 장점이 있습니다.

대신 단점은 JPA가 제공하는 fetch join 같은 기능을 사용할 수 없습니다.

감사합니다.

단무지님의 프로필 이미지
단무지

작성한 질문수

질문하기