지연로딩2 [JPA / JPQL] 페치조인 & 지연로딩 지연로딩을 기본 페치전략으로 가져가는 경우 어떤 문제점이 있을까?? 예시로 바로 살펴보자. @Entity class User{ ... @ManyToOne(fetch = FetchType.LAZY ) private Team team; ... } @Entity class Team{ @OneToMany(mappedBy = "team") // 기본적으로 LAZY private List users = new ArrayList(); ... } 영속성 컨텍스트는 깨끗하게 비워져있는 상태라고 가정한다. 아래의 데이터베이스 상황에서 쿼리를 날린다면?? List users = em.createQuery("select u from User u",User.class).getResultList(); for (User u : u.. 2020. 8. 6. [JPA] 프록시 (Proxy) 객체 & fetch = EAGER & LAZY class Order{ @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="user_id") private User user; .... } 여기서 @ManyToOne은 알겠는데 fetch 에서 LAZY는 무엇인가?? EAGER 는 무엇인가?? 왜 이런 설정이 있는가?? 보통 프록시라고 하면 프록시서버에 관한 내용이 많이 나온다. 단어만 가지고 생각하면 프록시는 "가짜" 와 관련된 느낌의 단어다. 그렇다. 프록시 객체는 가짜객체다. 프록시 객체는 실제 클래스의 객체를 상속 받은 객체이다. 그리고 실제 객체에 대한 Target 즉 참조를 가지고 있다. 초기의 프록시 객체는 이러한 참조만 가지고 있고 실제 내용은 텅텅비어있다. 이런 프록시 객체는 왜 만드는 것인가? .. 2020. 8. 6. 이전 1 다음