inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

실전 예제 3 - 다양한 연관관계 매핑

@JoinColumn 관련해서 질문있습니다.

378

윤가람

작성한 질문수 5

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라는 필드가 없는데 어떻게 조인되는건지 궁금합니다.

 

 

 

java JPA

답변 2

7

David

안녕하세요. 윤가람님, 공식 서포터즈 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

David

삭제된 글입니다

0

David

답변을 수정하였습니다. 다시 확인 부탁드립니다:)

벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?

0

33

2

inheritance startegy 선택시 고려사항

0

24

1

Entity 동등성 비교

0

24

1

실무 조언 관련 질문입니다.

0

48

1

H2데이터베이스 파일 생성

0

59

2

서브쿼리 강의에서 ALL 예시 관련 질문드립니다.

0

57

2

수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?

0

58

1

JPQL 메소드와 락

0

56

1

Delivery @OneToOne

0

62

1

17강 4~5분대 테이블 값 조회가 안됩니다.

0

98

2

UnsupportedOperationException 발생

0

89

3

H2 Database 연결이 안됩니다.

0

98

2

연관관계 매핑 질문드립니다.

0

88

2

h2데이터베이스 실행오류

0

110

2

persistence.xml

0

112

2

양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?

0

83

1

영속성 컨텍스트

0

70

1

JPA 프록시

0

100

1

Native Query와 MyBatis

0

73

1

영속성 컨텍스트는 어떤 메모리에 저장되는건가요?

0

93

1

임베디드 타입 예시 코드 관련 질문

0

121

3

명시적 조인에서 별칭을 주면 왜 객체에 접근할 수 있나요

0

96

3

인텔리제이 패키지 커서 단축키 질문

0

109

2

혹시 현재는 ID 데이터 타입이 String이면 안되나요?

0

149

1