프록시

유비빅·2022년 4월 5일
0

프록시
데이터가 실제 필요할 때 데이터를 불러오는
지연로딩을 사용할 때 실제 엔티티 객체 대신 사용되는 가짜 객체

  • 처음 사용할 때 한번만 초기화

  • 프록시 객체가 초기화되면 실제 엔티티에 접근할 수 있게 된다

  • 프록시 객체는 원본 엔티티를 상속받은 객체이므로 타입체크시 주의해야한다.

  • 영속성 컨텍스트에 실제 엔티티가 존재하는 상황이면 프록시가 아닌 실제 엔티티를 반환한다

  • 초기화는 영속성컨텍스트의 도움을 받아야한다.
    따라서 준영속상태의 프록시를 초기화하면 문제가 발생한다

    즉시로딩(EAGER LOADING)
    엔티티를 조회할 때 연관된 엔티티도 함께 조회한다
    @ManyToOne, @OneToOne

    지연로딩(LAZY LOADING)
    연관된 엔티티를 실제 사용할 때 조회되고 프록시객체로 갖고 있는다
    @OneToMany, @ManytoMany

0개의 댓글