• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

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

22.08.11 02:22 작성 조회수 179

0

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

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

 

 

 

답변 1

답변을 작성해보세요.

0

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