Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

메모장

JPA 즉시 로딩과 지연 로딩 본문

Java

JPA 즉시 로딩과 지연 로딩

doopang 2022. 2. 2. 23:58
  • 지연 로딩 LAZY를 사용해서 프록시로 조회
@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; 
    ..
}

 

Team team = member.getTeam();
team.getName(); // 실제 team을 사용하는 시점에 초기화(DB 조회)

 

  • 즉시 로딩 EAGER를 사용해서 함께 조회
@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;
    ..
}

 

Member 조회시 항상 Team도 조회

 

  • 프록시와 즉시로딩 주의
    • 가급적 지연로딩만 사용(특히 실무에서)
    • @ManyToOne, @OneToOne은 기본이 즉시 로딩 -> LAZY로 설정
    • @OneToMany, @ManyToMany는 기본이 지연 로딩

'Java' 카테고리의 다른 글

JPA Transaction 분리하고 싶을 때  (0) 2022.04.10
JPA delete 다음에 insert 하기  (0) 2022.04.10
JPA @MappedSuperclass  (0) 2022.02.02
JPA 상속관계 매핑  (0) 2022.02.02
JPA 연관관계 매핑  (0) 2022.01.24