알아두면 좋은것

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