[JPA] JPA 프록시 객체

민지·2022년 9월 7일
0

Java

목록 보기
4/20

JPA 구현체들은 연관된 객체들 처음부터 데이터베이스에서 조회하는 것이 아니라 실제 사용하는 시점에 데이터베이스에서 조회할 수 있다. 이게 프록시이다.

프록시 클래스는 실제 클래스를 상속 받아서 만들어져 실제 클래스와 겉 모양이 같다.

프록시를 사용하면 연관된 객체를 처음부터 데이터베이스에서 조회하는 것이 아니라, 실제 사용하는 시점에 데이터베이스에서 조회할 수 있다.

프록시 객체 사용법

즉시 로딩 (EAGER)
엔티티를 조회할 때 연관된 엔티티도 함께 조회하는 방법

지연 로딩 (LAZY)
: 엔티티가 실제 사용될 때 까지 데이터베이스 조회를 지연하는 방법
: 연관된 엔티티를 실제로 사용할 때 프록시로 조회한다.
: 실제 엔티티 객체 대신 데이터베이스에 조회를 지연할 수 있는 가짜 객체(프록시 객체)를 사용한다.

프록시 객체는 실제 객체의 대한 참조(target)를 보관한다.
그리고 프록시 객체의 메소드를 호출하면 프록시 객체는 실제 객체의 메소드를 호출한다. (이때 실제 데이터베이스에서 조회)

profile
개발일지

0개의 댓글