Dynamic
- Entity Graph (JPA)
- Hibernate하는 힌트를 줌
- table간의 관계를 보여줌
- left outer join (상대쪽을 불러올 수 없음)
- 관계없는 collerction을 조회할 경우 N+1문제 다시 발생
- Join fetch (JPA)
- EntityGraph와 같이 hibernate의 힌트를 줌
- inner Join으로 연결
Static
- @Batch Size
- N+1 문제를 N/batchSize +1 로 변경해줌
- 한개만 조회하고 싶어도 batch size 설정한 만큼 조회된다는 단점이 있음
- @Fetch (subselect)
- N+1 을 1+1로 바꿔줌
FetchJoin
OneToMany FetchJoin
fetchjoin을 사용하여 중복된 데이터가 조회될 때
Hibernate.initialize를 호출해 child entity를 초기화 해주거나
distinct()를 사용하여 중복 제거
https://studyandwrite.tistory.com/477
https://tmdrl5779.tistory.com/176
https://blog.leocat.kr/notes/2020/01/13/querydsl-duplication-problem-on-fetchjoin-with-onetomany
'Spring' 카테고리의 다른 글
[TIL] 240204 코드 리뷰/프로젝트 복습 Category (0) | 2024.02.04 |
---|---|
[TIL] 240203 WAS (0) | 2024.02.04 |
[TIL] 240125 Spring @Transactional (0) | 2024.01.25 |
[TIL] 240123 최종 프로젝트: 키워드 기반 상품 검색 (0) | 2024.01.23 |
[TIL] 240119 AWS EC2 (0) | 2024.01.19 |