-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
지금(Eager), 나중에(Lazy)의 의미를 모르겠습니다
22.08.11 02:22 작성 조회수 179
0
지금이냐 나중이냐 라는 말의 의미를 모르겠습니다
Fetch 를 Eager로 설정하면 연관관계에 있는 엔티티를 조회하고 Lazy로 설정하면 연관관계에 있는 엔티티까지는 조회하지 않는다는 것이 엔티티를 지금 가져오느냐 나중에 가져오느냐와 무슨 상관이 있는건가요?
답변을 작성해보세요.
0
백기선
지식공유자2022.08.19
안녕하세요. Fetch 모드는 JPA가 관리하는 객체의 상태와 관련이 있는데요. Persistent 상태의 객체는 객체의 연관 관계를 따라 조회할 때 추가적인 쿼리가 발생할 수 있습니다. 가령, student.getClassroom() 이라는 메서드를 호출할 때 Student와 연결되어 있는 Classroom 데이터를 조회하는 쿼리가 발생할 수 있는 거죠. 이런식으로 추후에 연관 관계를 조회할 때 쿼리가 발생하는 것을 Lazy fettch 라고 표현해요. 그게 아니라 student를 조회할 때 미리 해당 학생의 classroom 정보까지 이미 쿼리를 해온다면 Eager fetch라고 하구요.
답변 1