Chapter 8 - 프록시와 연관관계 관리

지연 로딩 기능을 사용하려면 실제 엔티티 객체 대신에 데이터베이스 조회를 지연할 수 있는 가짜 객체가 필요한데, 이것을 프록시 객체라고 한다.

하이버네이트는 지연 로딩을 지원하기 위해 프록시를

  1. 사용하는 방법
  2. 바이트코드를 수정하는 방법

→ 바이트 코드를 수정하는 방법은 설정이 복잠. 따라서 별도의 설정이 필요 없는 프록시에 대해서만 알아본다.

프록시

프록시의 기초

em.find()를 사용하면 영속성 컨텍스트에 entity 없으면 DB 조회 (entity 직접 조회)

이렇게 emtity 직접 조회하면 entity를 실제 사용하든 사용하지 않든 DB 조회하게 된다.

엔티티를 실제 사용하는 시점까지 DB 조회를 미루고 싶다면 em.getReference() 를 사용하면 된다.

이 메서드 호출시 DB 조회 하지 않고 실제 엔티티 객체도 생성하지 않는다.

대신에 DB 접근을 위임한 프록시 객체를 반환한다.

프록시의 특징