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
@OneToMany 관계에서 Fetch Join의 사용과 페이징 처리 문제
1. 상황 회원(Member)과 주문(Orders), 주문상품(OrderItem), 상품(Item)이라는 네 개의 엔티티를 중심으로 @OneToMany 관계에서 Fetch Join의 사용과 페이징 처리 문제에 대해 다뤄보겠습니다. 우선 간단한 엔티
studyandwrite.tistory.com
https://tmdrl5779.tistory.com/176
[JPA] One To Many에서 join fetch ( 페이징 )
페치 조인(fetch join)은 엔티티를 한번에 조회하게 최적화를 해준다. x To one 관계에서는 join fetch 를 해도되지만 one To many 에서는 Data 수가 many쪽에 맞춰 지면서 뻥튀기가 된다. public class Order { @Id @Ge
tmdrl5779.tistory.com
https://blog.leocat.kr/notes/2020/01/13/querydsl-duplication-problem-on-fetchjoin-with-onetomany
[Querydsl] OneToMany 관계에서 fetchjoin 시 데이터 중복 문제
OneToMany 관계의 entity를 Querydsl로 조회할 때 fetchjoin을 사용하면 데이터가 중복되어 조회될 수 있다.
blog.leocat.kr
'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 |