강의

멘토링

커뮤니티

Inflearn Community Q&A

sgr42443863's profile image
sgr42443863

asked

Spring Data JPA

JPA Programming 6. Fetch

지금(Eager), 나중에(Lazy)의 의미를 모르겠습니다

Written on

·

326

0

지금이냐 나중이냐 라는 말의 의미를 모르겠습니다

Fetch 를 Eager로 설정하면 연관관계에 있는 엔티티를 조회하고 Lazy로 설정하면 연관관계에 있는 엔티티까지는 조회하지 않는다는 것이 엔티티를 지금 가져오느냐 나중에 가져오느냐와 무슨 상관이 있는건가요?

 

 

 

javaspringJPA

Answer 1

0

whiteship님의 프로필 이미지
whiteship
Instructor

안녕하세요. Fetch 모드는 JPA가 관리하는 객체의 상태와 관련이 있는데요. Persistent 상태의 객체는 객체의 연관 관계를 따라 조회할 때 추가적인 쿼리가 발생할 수 있습니다. 가령, student.getClassroom() 이라는 메서드를 호출할 때 Student와 연결되어 있는 Classroom 데이터를 조회하는 쿼리가 발생할 수 있는 거죠. 이런식으로 추후에 연관 관계를 조회할 때 쿼리가 발생하는 것을 Lazy fettch 라고 표현해요. 그게 아니라 student를 조회할 때 미리 해당 학생의 classroom 정보까지 이미 쿼리를 해온다면 Eager fetch라고 하구요.

sgr42443863's profile image
sgr42443863

asked

Ask a question