JPA 패치 전략 (Fetch Strategy)이란?
JPA에서 패치 전략이란 연관된 엔티티를 조회할 때, 즉시 로딩(EAGER)과 지연 로딩(LAZY) 방식을 지정하는 것을 의미합니다.
- EAGER (즉시 로딩)
즉시 로딩은 연관된 엔티티가 항상 같이 로딩되어 가져옵니다. 예를 들어, Member 엔티티와 Team 엔티티가 일대다 관계일 때, Member 엔티티를 조회할 때 연관된 Team 엔티티도 함께 조회합니다.
@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToOne(fetch = FetchType.EAGER)
private Team team;
// Getter, Setter
}
@Entity
public class Team {
@Id
@GeneratedValue
private Long id;
private String name;
// Getter, Setter
}
- LAZY (지연 로딩)
지연 로딩은 연관된 엔티티가 실제 사용될 때 로딩됩니다. 예를 들어, Member 엔티티와 Order 엔티티가 일대다 관계일 때, Member 엔티티를 조회할 때 연관된 Order 엔티티는 필요할 때 로딩됩니다.
@Entity
public class Member {
@Id
@GeneratedValue
private Long id;
private String name;
@OneToMany(mappedBy = "member", fetch = FetchType.LAZY)
private List<Order> orders = new ArrayList<>();
// Getter, Setter
}
@Entity
public class Order {
@Id
@GeneratedValue
private Long id;
private String name;
@ManyToOne
private Member member;
// Getter, Setter
}
내저장소 바로가기 luxury515
'Back-end > JPA' 카테고리의 다른 글
Spring data JPA 의 aging, sorting 방법 Pageable, Sort 사용법 (0) | 2023.04.16 |
---|---|
JPA 조인전략 (0) | 2023.04.13 |
JPA 맵핑전략 (0) | 2023.04.13 |
JPA에서 Specification 사용해보기 (0) | 2023.04.13 |
JPA 에서 복합키 를 사용하는 이유 ,구현 방법. (0) | 2023.04.11 |