EX) Member를 조회할 때, Team도 함께 조회해야 할까?
-> 단순히 member 정보만 사용하는 거라면, Member만 조회하는 것이 좋다.
Team도 함께 조회하는 것은 효율이 떨어지며 낭비!
그래서 JPA는 '지연로딩' 옵션을 제공한다.
그럼 Member를 조회할 때, Team도 함께 조회해야 한다면?
JPA '즉시로딩' 옵션을 사용한다.
public class Member {
...
@ManyToOne(fetch = FetchType.LAZY) // 지연로딩 설정
@JoinColumn(name = "TEAM_ID")
private Team team;
...
}
-> 연관된 객체를 프록시로 가져오는 것!
public class Member {
...
@ManyToOne(fetch = FetchType.EAGER) // 즉시로딩 설정
@JoinColumn(name = "TEAM_ID")
private Team team;
...
}
@ManyToOne, @OneToOne은 기본이 즉시로딩이기 때문에 -> 지연로딩으로 변경해야 한다
@OneToMany, @ManyToMany는 기본이 지연로딩이기 때문에 변경안해도 된다