inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

263

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

답변 감사드립니다.

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

0

54

2

inheritance startegy 선택시 고려사항

0

35

1

Entity 동등성 비교

0

38

1

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

0

64

1

H2데이터베이스 파일 생성

0

75

2

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

0

66

2

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

0

62

1

JPQL 메소드와 락

0

62

1

Delivery @OneToOne

0

69

1

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

0

104

2

UnsupportedOperationException 발생

0

97

3

H2 Database 연결이 안됩니다.

0

101

2

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

0

93

2

h2데이터베이스 실행오류

0

114

2

persistence.xml

0

119

2

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

0

87

1

영속성 컨텍스트

0

74

1

JPA 프록시

0

105

1

Native Query와 MyBatis

0

81

1

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

0

96

1

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

0

125

3

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

0

100

3

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

0

112

2

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

0

151

1