인프런 - 실전! 스프링 데이터 JPA
문제 발생
- memberRepository.findAll() 함수 실행 시 Member 테이블만 조회되며, Team 테이블과 연관된 컬럼은 HibernateProxy$XXX.. 클래스를 가지는 가짜 객체로 채워지게 된다.
- 실제 Team 테이블 내 데이터 조회 시에 다시 한번 쿼리문을 던져 데이터를 가져오게 된다.
- Team 테이블에 N번 접근 시, N번 쿼리 던짐, 네트워크 낭비
- N + 1 문제 발생
해결방안 - 페치조인
페치 조인을 쓰고싶을 경우 무조건 jpql 을 써야할까?
- @EntityGraph 로 해결
- jpql과 섞어쓰는 것도 가능함
- Entity에 선언 가능
'Back-end > Spring Data Jpa' 카테고리의 다른 글
확장 기능 - 사용자 정의 리포지토리 구현 (★실무) (0) | 2021.06.07 |
---|---|
쿼리 메소드 기능 - JPA Hint & Lock (0) | 2021.06.07 |
쿼리 메소드 기능 - 벌크성 수정 쿼리 (0) | 2021.06.07 |
쿼리 메소드 기능 - 페이징 (0) | 2021.06.07 |
쿼리 메소드 기능 - 파라미터 바인딩 & 반환타입 (0) | 2021.06.07 |