- static
- Django
- spring mvc
- spring boot
- 데이터베이스
- PYTHON
- jpa
- sql
- ORM
- join
- mysql
- Docker
- 프로그래머스
- 스프링부트
- 1차원 배열
- 자바
- SSL
- hibernate
- java
- @transactional
- select
- 스프링
- 문자열
- nginx
- string
- AWS
- spring security 6
- spring
- DI
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
목록Spring Data JPA (2)
개발하는 자몽
상황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`..
아래 블로그 글을 참고하여 정리했습니다. Spring DeleteAllBy...In 호출시 에러 ( TransactionRequiredException ) 문제 상황 : deleteAllByIdxIn 호출 시 entitymanager가 왜 없을까? JPA OSIV라면 기본적으로 트랜잭션 범위는 서비스 단까지 있을테고, entity manager는 생성됐을 것이다. 그런데 왜 아래와 같은 에러가 났을까 happyer16.tistory.com 상황 에러 문구 javax.persistence.TransactionRequiredException: No EntityManager with actual transaction available for current thread - cannot reliably proce..