일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Thymeleaf
- 스프링
- JPQL
- 백준
- 자바
- 그리디
- transaction
- JDBC
- 김영한
- http
- kotlin
- AOP
- 스프링 핵심 원리
- Exception
- java
- pointcut
- 알고리즘
- 인프런
- spring
- Spring Boot
- Android
- db
- springdatajpa
- 스프링 핵심 기능
- QueryDSL
- Proxy
- Servlet
- jpa
- Greedy
- SpringBoot
- Today
- Total
목록batch_fetch (2)
개발자되기 프로젝트
1. 페이징 한계 컬렉션을 페치 조인하면 페이징이 불가능함 컬렉션을 페이 조인하면 일대다 조인이 발생하여 데이트가 예측할 수 없이 증가한다. 일대다에서 "일"을 기준으로 페이징을 하는 것이 목적인데 DATA는 "다"를 기준으로 DB에서 row가 생성된다.. 즉 Order 기준으로 페이징을 하고싶지만.. "다"인 OrderItem을 조인하면 "다"가 기준임.. 이 경우에 페이징을 시도하면 데이터를 싹 메모리에 올려서 페이징을 시도한다. ㅎㅎㅎㅎㅎ심각하다. 2. hibernate.default_batch_fetch_size, @BatchSize 그러면, 페이징 + 컬렉션 엔티티 함께 조회하고 싶으면 어떻게 해야함.. xToOne 관계를 모두 fetch join함. ToOne관계를 row수를 증가시키지 않아 ..
1. 페치 조인의 특징과 한계 페시 조인 대상에는 별칭을 줄 수 없다. 하이버네이트는 가능, 하지만 가급적 사용하지 말자. fetch join은 나랑 연관된 엔티티를 전부 다 가져옴. 따라서 fetch join에 별칭을 적용하여 탐색 시, 일부만 불러오게 됨. 예를들어 원래 t.members하면 5명이 나와야 하는데 fetch join에 별칭 적용하여 조건을 추가하여 3개가 나왔다고하자. 그러면 이 시점 이후에 t.members를 하면 5명이 아닌 3명만 조회된다. 하지만 JPA 기본 설계는 t.members하면 멤버 전체를 갈 수 있어야 한다. (객체 그래프는 기본적으로 전부 조회할 수 있어야 함) 둘 이상의 컬렉션은 페치 조인할 수 없다.(일 - 다 - 다) 일대다도 데이터 뻥튀기인데 일대다대다는? ..