inflearn logo
강의

Course

Instructor

Practical! Spring Data JPA

Generate queries by method name

안녕하세요 영한님 질문이 있습니다!!

304

kangsy763

49 asked

0

안녕하세요 영한님! 2.5단계 때문에 2월달은 온라인으로 진행되어서 3월달에나 볼 수 있겠네요 ㅜ.ㅜ 

이번에 질문하려고 하는 것은 메서드명으로 쿼리를 만드는 단계에서 자동으로 모든 컬럼을 페치조인을 하는지 궁금해서 질문했습니다! 

엔티티 내부에 LAZY로 걸어놓은 것과 상관없이 메서드명으로 쿼리가 만들어 질 때에 페치조인이 되는 것인가요??

프로젝트 진행 중에 findByTitle 이라는 메서드명으로 쿼리를  호출했을 때, select ... from 해당엔티티 where title= '타이틀명' 이 한 번 나가고 난 뒤에 여기에 lazy로 걸려있던 매핑 테이블들의 데이터에 select을 다 날리더라구요. 언뜻봐서는 n+1 인건가 싶었는데 findByTitle만 호출을 하고 lazy 걸려있는 것들을 뒤늦게 로딩시키지 않았으니 n+1은 아닌 것 같고 그렇다면 혹시 페치조인으로 되는건가 싶어서요! 

특이점은 해당 엔티티와의 fk와는 상관없이 그 테이블의 모든 데이터를 다 끌고온다는 점입니다. 

메서드이름으로 쿼리 생성이 페치조인을 이용하나요 ??

2월 한 달도 좋은 달 되시길 바랄게요~!

spring-boot spring JPA java

Answer 3

1

yh

네 그렇다면 어디선가 LAZY를 초기화 하고 있을거에요^^ 참고해주세요.

1

yh

안녕하세요. kangsy763님^^

처음 나간 쿼리가 전부입니다.

결국 페치조인이 아니라는 것이지요.

아마 엔티티 연관관계에 EAGER가 걸려있을거에요. 참고로 @XToOne은 기본이 EAGER입니다.

어서 코로나가 끝나면 좋겠네요 ㅎㅎ 그동안 열심히 학습하세요^^!

0

kangsy763

toOne 관계는 모두 lazy로 설정해놨는데도 이러는걸 봐서는 제가 뭔가 단단히 실수한게 있나보네요... 다시 검토해보겠습니다 답변 감사합니다~ ㅎㅎ

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

64

1

existsByUserIdAndProjectId vs existsByUserAndProject 중 어떤 방식이 적절할까요?

0

100

3

MemberRepository 구현체

0

55

1

pdf 표현 질문드립니다.

0

59

1

로그가 남지 않는 문제.

0

78

1

테스트 라이브러리가 강의는 junit4가 맞나요??

0

67

2

pdf 파일과 차이점이 있는 것같은데 문제 없나요?

0

68

2

@PrePersist, @PreUpdate 호출 시점 질문드립니다.

0

88

2

Sort 인터페이스는 잘 사용 안하나요?

0

50

1

스캔대상 질문드립니다.

0

45

1

하이버네이트6에서의 최적화에 이은 질문

0

81

1

save() vs saveAndFlush DB 통신 횟수

0

50

1

순수 JPA 리포지토리 코드 수정부분

0

85

2

bulk연산 후 flush하는 이유를 모르겠어요

0

147

3

bulk insert 질문입니다.

0

174

2

교만했던 것 같아요.

0

142

1

RESTful 강의는 안하시는 건지 궁금합니다.

0

143

2

동적 테이블에 대한 질문

0

84

1

영속성 전이와 연관관계

0

128

2

강의 10:25 질문

0

71

1

단건 update 질문

0

94

2

엔티티 와 도메인의 경계

0

124

1

UsernameOnlyDto 타입 type mismatch 오류

0

114

1

Projection 개념과 데이터 전달과정에 대해 질문 있습니다.

0

131

1