inflearn logo
강의

講義

知識共有

Java ORM標準JPAプログラミング - 基本編

一対一 [1:1]

대상 테이블에 외래키 의 단점

558

firefly08780

投稿した質問数 112

0

 member table만 조회해서 locker값이 있는지 없는지를 모릅니다. 그래서 locker table까지 조회를 해야합니다.

그래서 지연로딩이 불가하고 즉시로딩만 됩니다.

그런데 이렇게 따지면 주테이블에 외래키를 넣어도

locker table만 조회해서는 member값이 있는지 없는지를 모르지 않나요? member table까지를 확인해봐야 아는거잖아요

JPA java

回答 2

1

yh

안녕하세요. 김민지님

주 테이블이 member라고 하면,

member table에 locker의 외래키 값이 있으면, member table만 확인해도 locker의 데이터가 있는지 판단할 수 있습니다.

감사합니다.

0

dysh10172845

그렇다면 ManyToOne 관계에서 FK가 Many 쪽에 있고 One에 FK가 없으니,

One을 조회할때 eager로 데이터를 다 가져와야 할 것같은데

One에서 lazy로 가져오는 걸 허용하는 이유가 뭘까요?

One에 입장에서 Many측에 데이터가 얼마나 많은지 알 수 없고 하니,
다 가져오는데 있어 효율적이지 않으므로(데이터를 안쓸 수도 있으니) lazy로 프록시 객체만 생성하고,
이후 해당 데이터를 조회할때 데이터를 가져오는 건데


이처럼 OneToOne 양방향에서도 FK를 관리하지 않는쪽에서 다른 대상 테이블에 자신의 PK를 FK로 갖고 있으니, lazy로 가져올 수 있지않나 싶습니다.

하이버네이트에서 이 경우는 Many때와 달리 데이터를 바로 eager로 가져오는게 효율적이라고 판단해서 이렇게 설계된 것이라고 생각하면 될까요?

lazy로 가져오게 할 수 있을것 같아서 여쭤봅니다.
(연관관계 있는 대상 테이블이 뭔지 알고, FK가 무엇인지도 아니)

답변주시면 감사드리겠습니다. 

0

yh

안녕하세요. 유승현님

다음을 참고해주세요.

https://www.inflearn.com/questions/224187

감사합니다.

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

0

39

1

H2데이터베이스 파일 생성

0

48

2

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

0

49

2

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

0

46

1

JPQL 메소드와 락

0

48

1

Delivery @OneToOne

0

55

1

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

0

85

2

UnsupportedOperationException 발생

0

80

3

H2 Database 연결이 안됩니다.

0

87

2

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

0

78

2

h2데이터베이스 실행오류

0

103

2

persistence.xml

0

101

2

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

0

76

1

영속성 컨텍스트

0

61

1

JPA 프록시

0

87

1

Native Query와 MyBatis

0

62

1

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

0

81

1

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

0

110

3

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

0

89

3

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

0

104

2

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

0

134

1

양방향 연관관계 시 연관관계 주인을 설정하는 이유

0

67

1

임베디드 타입과 MappedSuperClass의 차이점이 궁금합니다.

0

95

1

데이터베이스가 초기화되는 것 같아요

1

173

2