지연로딩과 즉시로딩
지연로딩(fetch = FetchType.LAZY) A엔티티가 B엔티티를 참조하고 있다고 하자 지연로딩은 A엔티티를 조회할때 A엔티티 정보만 SELECT하고 B엔티티 정보는 SELECT하지 않다가 B엔티티 정보를 참조할때 B엔티티 정보를 SELECT하는 것. A엔티티를 조회할 시점에 B타입의 프록시를 생성하여 대체. 프록시는 B타입을 상속받아 구현. B엔티티 정보를 조회해야할때 프록시는 영속성 컨텍스트에 초기화 요청을 하면 영속성 컨텍스트가 B엔티티 정보를 DB에 요청하여 받아서 B엔티티를 생성해주고 프록시는 생성된 B엔티티 객체를 참조하여 데이터를 읽어온다. 즉시로딩(fetch = FetchType.EAGER) 즉시로딩은 A엔티티를 조회할때 B엔티티 정보도 같이 조인하여 전부 가져오는 것. 즉시로딩의 ..
2021.01.20