멤버 조회할때 팀까지 조회해야하나?
-지연 로딩 LAZY를 사용해서 팀 객체를 프록시로 가져옴
-@ManyToOne(fetch = FetchType.LAZY)
-실제로 팀 객체의 메서드를 사용하는 시점 DB에 쿼리가 따로 나감(초기화)
멤버와 팀을 자주 함께 사용한다면?
즉시로딩 EAGER를 사용해서 같이 가져옴
@ManyToOne(fetch = FetchType.EAGER)
주의사항
-실무에선 무조건 지연 로딩만 사용
-즉시 로딩을 적용하면 예상하지 못한 SQL이 발생(JPQL에서 N+1 문제를 일으킴)
-@ManyToOne, @OneToOne은 기본이 즉시 로딩 -> LAZY로 설정 바꾸는거 필수
-@OneToMany, @ManyToMany는 기본이 지연 로딩
'웹 프로그래밍 > JPA' 카테고리의 다른 글
기본값 타입, 임베디드 타입 (0) | 2023.03.06 |
---|---|
영속성 전이(CASCADE)와 고아 객체 (0) | 2023.03.04 |
프록시 (1) | 2023.03.04 |
고급 매핑 (0) | 2023.03.04 |
연관관계 매핑 기초 (0) | 2023.03.03 |