Notice
Recent Posts
Link
Tags
- 스프링
- static
- PYTHON
- spring
- SSL
- DI
- sql
- 자바
- spring security 6
- spring mvc
- AWS
- Django
- 데이터베이스
- 문자열
- 1차원 배열
- ORM
- string
- 스프링부트
- springboot
- join
- hibernate
- mysql
- Docker
- @transactional
- jpa
- spring boot
- nginx
- java
- select
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Archives
목록pagination (1)
개발하는 자몽
[Spring Data JPA] 하이버네이트 Batch Size
상황1:N 관계가 얽혀있는 엔티티를 대상으로 Spring Data JPA를 이용해서 Pagination 조회를 하니 말로만 듣던 N+1 상황이 발생했다. 처음에는 일반적인 해결 방법인 Fetch Join을 사용하려고 했다. 더불어 중복을 방지하기 위해 `DISTINCT` 추가하려고 했다. 그러나 1:N 관계의 컬렉션을 Fetch Join 하면서 동시에 Pagination을 사용하는 것은 OutOfMemoryError가 발생할 수 있고, 이로 인해 `DISTINCT`를 적용할 수 없다고 한다. 그래서 찾은 다른 방법 중 가장 빠르고 쉬운 방법은 Batch Size를 설정하는 것이었다. 하이버네이트 Batch Size 하이버네이트에서 제공하는 `@BatchSize` 애노테이션이나 `batch_size`..
Java & Kotlin/Spring
2024. 11. 25. 16:42