작성
·
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
본 강의에서 회원과 주문은 일대다, 다대일 양방향 연관관계입니다.
아래 이미지에서 객체 연관관계와 테이블 연관관계 그리고 연관관계 매핑을 주의 깊게 보시면,
(아래 예제는 팀이 N, 멤버가 1 입니다. 팀에는 여러 회원을 갖는 구조)
List<Member>는 연관관계의 매핑(외래키)을 위한 필드로 사용이 되고 실제 컬럼이 생성되지 않습니다.
정리하면, 연관관계를 매핑하기 위한 용도의 필드와 컬럼이 생성되는 필드의 차이로 이해하시면 될 것 같습니다 😀
감사합니다.