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

s2사랑해요s2김영한s2님의 프로필 이미지

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

OneToMany와 테이블 칼럼 관련 질문드립니다.

작성

·

54

0

안녕하세요

@Entity
 @Getter @Setter
 public class Member {

     @Id @GeneratedValue
     @Column(name = "member_id")
     private Long id;

     private String name;

     @Embedded
     private Address address;

     @OneToMany(mappedBy = "member")
     private List<Order> orders = new ArrayList<>();
 }

이렇게 엔티티를 JPA 매핑을 시키면

테이블이 자동으로 생성되면서 컬럼들을 생성해주는데

id, name ,address는 칼럼으로 생성되는데

@OneToMany 어노테이션이 붙은 필드는

왜 컬럼으로 생성이 되지 않는 것인지 궁금합니다!!

답변 1

1

안녕하세요. s2사랑해요s2김영한s2님, 공식 서포터즈 OMG입니다.

 

JPA기본편과 활용1편에서의 학습 내용을 바탕으로 설명드리겠습니다.

JPA 기본편 Team(1)<->(N)Member

JPA 활용1편 Member(1)<-> (N)Order

 

본 강의에서 회원과 주문은 일대다, 다대일 양방향 연관관계입니다.

image

아래 이미지에서 객체 연관관계테이블 연관관계 그리고 연관관계 매핑을 주의 깊게 보시면,

(아래 예제는 팀이 N, 멤버가 1 입니다. 팀에는 여러 회원을 갖는 구조)

image

List<Member>는 연관관계의 매핑(외래키)을 위한 필드로 사용이 되고 실제 컬럼이 생성되지 않습니다.

 

정리하면, 연관관계를 매핑하기 위한 용도의 필드와 컬럼이 생성되는 필드의 차이로 이해하시면 될 것 같습니다 😀

 

감사합니다.