🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Jpa query 질문이 있어서 올립니다.

21.02.04 17:16 작성 조회수 188

1

다름이 아니라 제가 실행하고 돌린 것은 fetch 조인을 해도 쿼리가 하나가 나가는게 아니라 2개가 나갑니다.

select

        order0_.order_id as order_id1_6_0_,

        member1_.member_id as member_i1_4_1_,

        delivery2_.delivery_id as delivery1_2_2_,

        order0_.delivery_id as delivery4_6_0_,

        order0_.member_id as member_i5_6_0_,

        order0_.order_date as order_da2_6_0_,

        order0_.status as status3_6_0_,

        member1_.city as city2_4_1_,

        member1_.street as street3_4_1_,

        member1_.zipcode as zipcode4_4_1_,

        member1_.name as name5_4_1_,

        delivery2_.city as city2_2_2_,

        delivery2_.street as street3_2_2_,

        delivery2_.zipcode as zipcode4_2_2_,

        delivery2_.status as status5_2_2_ 

    from

        orders order0_ 

    inner join

        member member1_ 

            on order0_.member_id=member1_.member_id 

    inner join

        delivery delivery2_ 

            on order0_.delivery_id=delivery2_.delivery_id

Hibernate: 

    select

        order0_.order_id as order_id1_6_0_,

        member1_.member_id as member_i1_4_1_,

        delivery2_.delivery_id as delivery1_2_2_,

        order0_.delivery_id as delivery4_6_0_,

        order0_.member_id as member_i5_6_0_,

        order0_.order_date as order_da2_6_0_,

        order0_.status as status3_6_0_,

        member1_.city as city2_4_1_,

        member1_.street as street3_4_1_,

        member1_.zipcode as zipcode4_4_1_,

        member1_.name as name5_4_1_,

        delivery2_.city as city2_2_2_,

        delivery2_.street as street3_2_2_,

        delivery2_.zipcode as zipcode4_2_2_,

        delivery2_.status as status5_2_2_ 

    from

        orders order0_ 

    inner join

        member member1_ 

            on order0_.member_id=member1_.member_id 

    inner join

        delivery delivery2_ 

            on order0_.delivery_id=delivery2_.delivery_id

이런식으로 두개가 나가는데 이렇게 나가는 이유가 조회한 orderId 값이 달라서 이런건가요?? 그러기엔 영속성 안에 있는 값을 사용하면되는데 왜 다시 한번 호출이 되는지 궁금합니다.

답변 1

답변을 작성해보세요.

1

안녕하세요. 경재님^^

아마도 show_sql 옵션을 켜주시고 또

logging.level.org.hibernate.SQL: debug 이렇게 둘다 켜져 있어서 그렇게 보인 것 같아요.

show_sql은 콘솔에 출력하고

logging.level.org.hibernate.SQL: debug는 로거를 통해서 출력하거든요.

다른 JPQL들도 실행해보시면 이해하실 수 있을거에요.

감사합니다.

채널톡 아이콘