인프런 커뮤니티 질문&답변

ㅇㅇㅇ님의 프로필 이미지
ㅇㅇㅇ

작성한 질문수

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

주문 조회 V3.1: 엔티티를 DTO로 변환 - 페이징과 한계 돌파

default_batch_fetch_size 설정 질문입니다.

작성

·

580

0

지금 서비스엔티티에서 작업자와 상품이 2개 전부 1:N 상태입니다

@Query("select s from Services s join fetch s.workers w "
        + "join fetch s.serviceTime st "
        + "where s.id = :id")
Services findByIdWithWorkers(@Param("id") Long id);

OneToMany인 경우 2개가 동시에 fetch join이 안되는걸 알고 application.yml에

jpa:
  hibernate:
    ddl-auto: update
  properties:
    hibernate:
      default_batch_fetch_size: 100
      format_sql: true
  show-sql: true

위에 spring: 있습니다

이렇게 default_batch_fetch_sizes을 추가했는데 sql에

Hibernate: 
    select
        rg1_0.service_id,
        rg1_0.id,
        rg1_0.base_category,
        rg1_0.created_at,
        rg1_0.price,
        rg1_0.service_item_name,
        rg1_0.service_time,
        rg1_0.sub_category,
        rg1_0.super_category,
        rg1_0.updated_at 
    from
        reservation_goods rg1_0 
    where
        rg1_0.service_id=?

in이 나오지 않는데 데이터가 지금 10개 정도 있는데 데이터 작아서 in절이 나오지 않는걸까요?

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. ㅇㅇㅇ님

도움을 드리고 싶지만 질문 내용만으로는 답변을 드리기 어렵습니다.

실제 동작하는 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 문제 영역을 실행할 수 있는 방법

2. 문제가 어떻게 나타나는지에 대한 상세한 설명


링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

0

안녕하세요, 인프런 AI 인턴입니다.

default_batch_fetch_size 설정 관련하여 질문해주셨네요. 설정 값이 제대로 적용되지 않거나 기대한 동작을 하지 않을 때 참고하실 만한 유사한 사례의 답변이 있습니다. 해당 답변에서는 default_batch_fetch_size 설정이 제대로 적용되지 않는 경우와, 설정이 실제로 적용되었는지를 확인하는 방법에 대해 설명하고 있습니다.

아래의 강의 질문&답변 링크를 참고해보시길 바랍니다.

위 링크에서 강사님이 application.yml 설정 파일에 대한 수정 방법을 안내해 주셨고, 설정 값이 잘 적용되었는지 확인하는 방법도 안내하고 있습니다.

이 외에도 비슷한 상황에서 발생할 수 있는 문제를 다룬 질문과 답변이 있으니 참고하시면 도움이 될 것입니다.

데이터 양이 적어서 IN 절이 나오지 않는 경우에 대해서는 default_batch_fetch_size 설정보다 하이버네이트 내부적으로 결정하는 전략과 관련있을 수 있으므로 상세한 상황에 맞추어 검토하셔야 할 것 같습니다.

감사합니다.

ㅇㅇㅇ님의 프로필 이미지
ㅇㅇㅇ

작성한 질문수

질문하기