inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

양방향 1:1 관계 엔티티의 fetch join시 lazyloading 문제에 대해 질문드립니다.

해결된 질문

417

이상호

작성한 질문수 1

0

안녕하세요. 영한님 강의를 보면서 실무에 처음으로 JPA를 도입해서 사용하고있습니다.

질문 내용은 페치조인시에 양방향으로 1:1 관계 매핑이 있는 엔티티의 경우 fetch type을 lazy로 설정하여도 즉시 조회 쿼리가 나가는 것 같아서 질문드립니다. 혹시 제가 설정을 잘못한 것인지 해결은 어떻게 해야할까요?

관계 구성은 간단하게 아래와 같습니다.

Order 조회시 Member를 fetch join 하면Member 와 1:1관계인 MemberDetail 조회 쿼리가 즉시 수행됩니다.

제가 작성한 예제 코드도 공유해드리겠습니다. 테스트 코드에 있는 테스트 케이스를 실행 시켜보시면 조회쿼리를 확인하실수 있습니다.

예제 코드링크

git clone https://sangholee_dev@bitbucket.org/sangholee_dev/one-to-one-test.git

추가로 이건 강의 범주를 넘어서는 질문같긴한데 테이블 설계시 1:1 관계가 옳은 설계인지 궁금합니다.

영한님은 혹시 실무에서 성향이 다른 데이터를 저장할때 정규화하여 1:1 관계로 설계하시는지 아니면 테이블은 분리하지 않고 객체만 나눠서 처리하시는지 궁금합니다.

JPA spring-boot spring java

답변 2

1

이상호

감사합니다. 강의 질문 답변을 조금 더 찾아봤어야 했네요.

실무에서 혼자 해결 할때는 default_batch_fetch_size 를 사용하는 것처럼 문제가 있는 1:1 관계로 매핑되어있는 엔티티들을 전부 fetch join 해서 쿼리가 한번만 더 수행되게 처리했습니다.

위 관계로 말씀드리면 Order를 조회하고 Member, MemberDetail, ProfileImage를 페치조인해서 Order에 member의 id로 찾아 넣어주는식으로 해서 1+1로 쿼리가 수행되게 했는데 알려주신 방법 5가지로 다시 한번 생각해보겠습니다.

그리고 테이블설계도 다시한번 생각해보겠습니다.

감사합니다.

0

김영한

안녕하세요. 상호님 좋은 질문입니다^^

JPA 단골 질문중에 하나인데요. 다음 링크를 확인해주세요^^

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

감사합니다.

강의 관련 외 질문입니다.

0

64

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

0

85

1

BeanCreationException

0

86

3

Update 후 UpdateMemberResponse 매핑할 때

0

46

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

97

2

페이징 + 검색조건 관련해서 질문드립니다.

0

70

1

Query Dsl Q파일 질문입니다.

0

81

1

루트 쿼리라는것은

0

58

1

메서드를 분리하는 기준

0

61

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

108

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

83

2

fetch join과 영속화와 OSIV의 관계

0

83

2

Distinct 사용 전 결과에 대한 의문

0

113

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

55

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

77

2

dto 필드 속 엔티티 여부

0

58

1

뷰템플릿 사용 시

0

76

2

Result 클래스 관련 질문

0

56

1

@PostConstruct 프록시 관련 질문드립니다

0

85

1

DTO 대신 Form 사용은 안되나요?

0

133

1

OSIV ON 상태일 때

0

95

1

fetch join VS fetch join 페이징 궁금증

0

179

2

양방향 연관관계 알아보는 법?

0

104

1

16강 17강 간단 정리 이게 맞을까요 ?

0

165

2