Member를 조회할 때 Team도 함께 조회해야 할까?

단순히 member 정보만 사용하는 비즈니스 로직이라고 하면 member를 조회할 때 team까지 가져오면 손해입니다.

그래서 JPA는 지연 로딩이라는 옵션을 제공합니다.

지연 로딩 LAZY을 사용해서 프록시로 조회

Member만 조회

package hellojpa;

import javax.persistence.*;

@Entity
public class Member_15 extends BaseEntity {

    @Id @GeneratedValue
    @Column(name = "MEMBER_ID")
    private Long id;

    @Column(name = "USERNAME")
    private String username;

    **@ManyToOne(fetch = FetchType.LAZY)**
    @JoinColumn
    private Team_15 team;

		//Getter, Setter
}
  1. @ManyToOne(fetch = FetchType.LAZY)
...

        try {

            Member_15 member = new Member_15();
            member.setUsername("member1");
            em.persist(member);

            em.flush();
            em.clear();

            Member_15 m = em.find(Member_15.class, member.getId());

            tx.commit();
        }

...

실행해봅니다.

Untitled

쿼리를 보면 Member만 가져왔습니다.

Team을 같이 조회