작성
·
284
2
1. 강의 5:54분 을 보면
Order라는 엔티티에서
@OneToOne
@JoinColumn(name="DELIVERY_ID")
private Delivery deliver;
이 부분과 Delivery 엔티티에서의
@Id @GeneratedValue
private Long id;
@Column(name="DELIVERY_ID")
이 부분이 없는데 서로 어떻게 Join 되는건지 궁금합니다.
2. 그리고 추가로 강의 8:00 에 보시면
셀프조인 하는 부분이 나오는거 같은데
@ManyToOne
@JoinColumn(name="PARENT_ID")
private Category parent;
이것의 의미는 parent 는 Category 엔티티의 PARENT_ID와 조인한다? 라는 의미가 맞나요?
근데 정작 Category 엔티티에서는 PARENT_ID라는 필드가 없는데 어떻게 조인되는건지 궁금합니다.
답변 2
7
안녕하세요. 윤가람님, 공식 서포터즈 David입니다.
.
1. 강의 5:54분 을 보면 Order라는 엔티티에서
@OneToOne
@JoinColumn(name="DELIVERY_ID")
private Delivery deliver;
이 부분과 Delivery 엔티티에서의
@Id @GeneratedValue
private Long id;
@Column(name="DELIVERY_ID")
이 부분이 없는데 서로 어떻게 Join 되는건지 궁금합니다.
=>
@JoinColumn(name = "Delivery_Id")를 설정하면
먼저, Order 테이블에 Delivery_Id라는 외래키 컬럼이 생성됩니다.
Order의 Delivery delivery 변수에 delivery 엔티티가 할당되면 Order를 저장할 때 delivery 엔티티의 PK를 외래키 컬럼인 Delivery_Id에 저장하게 됩니다.
따라서 Delivery 엔티티의 Delivery_Id 칼럼의 존재유무와 무관합니다.
2. 그리고 추가로 강의 8:00 에 보시면 셀프조인 하는 부분이 나오는거 같은데
@ManyToOne
@JoinColumn(name="PARENT_ID")
private Category parent;
이것의 의미는 parent 는 Category 엔티티의 PARENT_ID와 조인한다? 라는 의미가 맞나요?
근데 정작 Category 엔티티에서는 PARENT_ID라는 필드가 없는데 어떻게 조인되는건지 궁금합니다.
=>
위에서 설명드린 것과 마찬가지입니다.
@JoinColumn(name = "PARENT_ID")를 설정하면
먼저, Category테이블에 PARENT_ID라는 외래키 컬럼이 생성됩니다.
Category의 Category parent변수에 Category 엔티티가 할당되면 Category를 저장할 때 Category parent엔티티의 PK를 외래키 컬럼인 PARENT_ID에 저장하게 됩니다.
.
감사합니다.
0
답변을 수정하였습니다. 다시 확인 부탁드립니다:)