인프런 커뮤니티 질문&답변

두잇베스트님의 프로필 이미지
두잇베스트

작성한 질문수

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

주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파

지연 로딩 질문드립니다.

작성

·

298

0

질문.  지연로딩은 연관된 엔티티를 실제로 사용할ㄸ때 쿼리가 나가는데. (member.getTeam 프록시 객체익고 member.getTeam().getName() 하면 팀 엔티티를 조회하듯이) 그래서

 

지연로딩이 일어나는 위치가 2번째줄에서 일어나는게 맞는지 질문드립니다. orderItem.getItem()(연관된 엔티티 실제로 사용) 함으로써 프록시 초기확가 일어나서 orderitem을 조회하고, 여기서 getName() 에 의해서 프록시 초기확가 되어 item 조회 쿼리가 나가는게 맞는지 질문 드립니다. 

답변 3

0

김영한님의 프로필 이미지
김영한
지식공유자

orderItems 컬렉션에서 값을 꺼내는 순간 초기화 될꺼에요^^

감사합니다.

0

직접 실행해봤습니다.

item 프록시 초기화는 예상대로 되었지만,

ordeItem이 프록시 초기화 되는 시점이 AAAAAAAAA 바로 뒤부터 시작하는군요!!.

그럼 초기화 되는 이유가 orderItem -> new OrderItemDto(orderItem)에 의해서 진행되는건가요?  

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 두잇베스트님

고기잡는 법을 알려드리기 위해서 다음과 같이 테스트를 해보시겠어요?

궁금하신 곳 위 아래에 System.out.println("======") 으로 찍어보시면 실제 SQL이 언제 실행되는지 확인할 수 있습니다. 이 SQL이 실행되는 곳이 바로 프록시가 초기화되는 지점입니다.

실행하고 결과를 남겨주세요^^

두잇베스트님의 프로필 이미지
두잇베스트

작성한 질문수

질문하기