프록시
데이터가 실제 필요할 때 데이터를 불러오는
지연로딩을 사용할 때 실제 엔티티 객체 대신 사용되는 가짜 객체
처음 사용할 때 한번만 초기화
프록시 객체가 초기화되면 실제 엔티티에 접근할 수 있게 된다
프록시 객체는 원본 엔티티를 상속받은 객체이므로 타입체크시 주의해야한다.
영속성 컨텍스트에 실제 엔티티가 존재하는 상황이면 프록시가 아닌 실제 엔티티를 반환한다
초기화는 영속성컨텍스트의 도움을 받아야한다.
따라서 준영속상태의 프록시를 초기화하면 문제가 발생한다
즉시로딩(EAGER LOADING)
엔티티를 조회할 때 연관된 엔티티도 함께 조회한다
@ManyToOne, @OneToOne
지연로딩(LAZY LOADING)
연관된 엔티티를 실제 사용할 때 조회되고 프록시객체로 갖고 있는다
@OneToMany, @ManytoMany