(default)
@xxToOne은 EAGER,@xxToMany는 LAZY
엔티티가 조회될 때 연관된 엔티티들도 함께 조회된다.
성능에 부담을 줄 수 있으나 즉시 필요한 데이터를 빠르게 조회할 수 있다.
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
@ManyToOne(fetch = FetchType.EAGER) //Team을 조회할 때 즉시로딩을 사용하겠다!
@JoinColumn(name = "team_id")
Team team;
}
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String teamname;
}
JPQL로 Member 1건 조회
Member findMember = em.createQuery("select m from Member m", Member.class).getSingleResult();
실제로 연관된 엔티티가 필요할 때 조회된다.
성능을 최적화할 수 있으나, 사용 시점에 데이터베이스 조회가 발생한다.
@Entity
public class Member {
@Id @GeneratedValue
private Long id;
private String username;
@ManyToOne(fetch = FetchType.LAZY) //Team을 조회할 때 지연로딩을 사용하겠다!
@JoinColumn(name = "team_id")
Team team;
}
@Entity
public class Team {
@Id @GeneratedValue
private Long id;
private String teamname;
}
Member findMember = em.createQuery("select m from Member m", Member.class).getSingleResult();