220923 지연로딩에서의 프록시 객체

Jongleee·2022년 9월 23일
1

TIL

목록 보기
61/576

지연로딩에서의 프록시 객체

  • 지연 로딩에서는 연관된 엔티티가 바로 조회되지 않는다.
  • 이는 효율성을 위해서인데 이때 연관된 실제 엔티티객체를 조회하는 대신 사용하는 가짜 객체가 프록시 객체이다.
  • 이 프록시 객체는 target이라는 실제 객체의 참조를 보관하고 있다가 호출이 들어오면 실제 객체를 가져옴(=프록시 객체의 초기화)
  • 실제 객체 호출 과정
  1. 사용자가 entity.getParameter() 호출
  2. Member target 값이 없는 경우 JPA가 영속성 컨텍스트에 요청
  3. 영속성 컨텍스트가 DB조회
  4. 실제 Entity를 생성해줌
  5. target에 실제 Entity를 연결해준다.
  6. target을 이용해서 entity.getParameter() 응답

따라서 호출이 되지 않은(즉, 프록시 객체의 초기화가 되지않은) 경우에 엔티티를 비교하게 되면 같은 값이 아니게 되는 문제가 발생함.

0개의 댓글