- 실제 객체를 사용하는 시점에 데이터를 조회한다.
@Entity
public class Member {
@Id
Long id;
String name;
@ManyToOne(fetch = FetchType.LAZY)
Team team;
}
위의 예시에서는 SQL이 2번 실행된다.
select ...
from member
where ...
select ...
from team
where ...
- fetch타입을 EAGER로 설정하면 즉시 로딩으로 설정된다.
- 데이터를 사용할 때 연관관계에 있는 테이블의 정보도 항상 같이 사용된다면 즉시로딩으로 설정할 수 있다.
- 즉시로딩으로 지정하면 조인을 사용해 SQL을 한번만 실행해서 데이터를 한번에 조회한다.
@Entity
public class Member {
@Id
Long id;
String name;
@ManyToOne(fetch = FetchType.EAGER)
Team team;
}
(!!!무조건)
지연로딩(LAZY)만 사용