알아두면 좋은것
Hibernate / MyBatis
큼큼이
2023. 8. 22. 22:22
Hibernate | MyBatis | |
컴파일 타임 오류 감지 | 런타임에 오류 감지 | |
객체 지향적 | Query Mapping 만 단순히 가능 | |
복잡한 쿼리 불가능 | ||
대용량 처리가 어려움 | ||
N+1 문제 | ||
1차캐시, 쓰기지연, 변경감지, 지연로딩을 제공 |
JPA N+1 문제
- 의존관계를 가진 부모객체를 다건 쿼리할 경우, 자식 객체들에 대한 의존을 참조하면 N회 쿼리가 되는 문제
- FetchType 를 Lazy 로 설정함
- Fetch Join 을 사용함 (JPQL 로 작성해야함)
- FetchMode.SubSelect 를 이용함. 연관관계의 데이터를 조회 할 때, 서브 쿼리로 함께 조회하는 방법.
- BatchSize