inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

<실전 예제 3 - 다양한 연관관계 매핑> 관련 질문 2개

267

with_all

작성한 질문수 23

0

안녕하세요. <실전 예제 3 - 다양한 연관관계 매핑>에서 질문이 있습니다.

 

1) Delivery 클래스에는 다음과 같이 기술되어 있는데요.

 

    @Id

    @GeneratedValue

    private Long id;

 

Order 클래스에서는 다음과 같이 기술되어 있습니다.

 

    @OneToOne

    @JoinColumn(name = "DELIVERY_ID")

    private Delivery delivery;

 

DELIVERY_ID라고 이름 지어진 변수가 없는데( @Column(name = "DELIVERY_ID")가 기술되어 있지 않습니다 ), 어떻게 @JoinColumn(name = "DELIVERY_ID") 이 가능한 것인가요?

 

2) Category 클래스에서 id에는 다음처럼만 기술되어 있습니다.

 

    @Id

    @GeneratedValue

    private Long id;

 

즉 @Column(name = "PATENT_ID")가 없지요.

 

그런데 어떻게 

 

    @ManyToOne

    @JoinColumn(name = "PARENT_ID")

    private Category parent;

 

에서 @JoinColumn(name = "PARENT_ID")이 가능할 수 있는 것인가요?

 

기존에 올라와 있는 질문을 검색해서 https://www.inflearn.com/questions/113969 을 읽어보았습니다.

 

@JoinColumn의 name은 FK 이름이라고 하셨는데요. 

 

하지만 @Column(name = "PATENT_ID")가 없으니 PATENT_ID라는 FK가 생성 자체가 안 되는 것 아닌가요?

 

읽어주셔서 감사합니다.

 

@JoinColumn java JPA

답변 1

1

David

안녕하세요. with_all님, 공식 서포터즈 David입니다.

.
1. JPA에서 칼럼명을 생성하는 관례가 있습니다. Delivery클래스에 id라는 이름을 가지는 멤버변수가 있다면 DELIVERY_ID로 칼럼명을 생성합니다.

2. 이것 또한 관례로 생성되는 것과 동일합니다. parent의 타입이 Category입니다. Category 테이블을 생성할 때 (FK로 쓰여질) parent에 대한 칼럼을 생성하게 됩니다. 해당 칼럼명은 다음과 같이 만들어집니다. 변수명(PARENT)+PK의 변수명(ID) => PARENT_ID


.
감사합니다.

0

with_all

답변 감사드립니다.

변경감지(더티체킹) 이후 플러시할 경우의 쿼리

0

48

1

단일 테이블 시 null 값과 연관관계 필요성 질문

0

47

1

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

0

75

2

inheritance startegy 선택시 고려사항

0

51

1

Entity 동등성 비교

0

54

1

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

0

79

1

H2데이터베이스 파일 생성

0

92

2

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

0

74

2

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

0

74

1

JPQL 메소드와 락

0

68

1

Delivery @OneToOne

0

84

1

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

0

118

2

UnsupportedOperationException 발생

0

132

3

H2 Database 연결이 안됩니다.

0

117

2

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

0

117

2

h2데이터베이스 실행오류

0

132

2

persistence.xml

0

137

2

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

0

106

1

영속성 컨텍스트

0

91

1

JPA 프록시

0

117

1

Native Query와 MyBatis

0

97

1

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

0

110

1

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

0

147

3

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

0

116

3