Team을 가져와야 하나?

@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
@ManyToOne(fetch = FetchType.LAZY) //**
@JoinColumn(name = "TEAM_ID")
private Team team;
..
}
지연로딩 (LAZY)를 하게 되면, Team을 프록시로 가져온다.


@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
@Column(name = "USERNAME")
private String name;
@ManyToOne(fetch = FetchType.EAGER) //**
@JoinColumn(name = "TEAM_ID")
private Team team;
..
}
프록시를 사용하지 않고 즉시 다 가져옴

즉시로딩(EAGER) 사용시, Member 조회할때 항상 Team도 조회
LAZY)만 사용Member를 조회하면 Team을 무조건 가져오므로,Team을 조회하는 쿼리가 하나 더 나간다.@ManyToOne, @OneToOne은 기본이 즉시 로딩
-> LAZY로 설정JPQL에서도 join fetch 등을 이용해 EAGER을 사용할 수 있음.
(LAZY가 걸려있어도 값을 가져옴)