inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

쿼리..질문

207

김주영

작성한 질문수 6

0

안녕하세요,,

김영한님 강의를 열혈 수강하고 있는 김주영이라고합니다..

 

다름아니라, 제가 개인 프로젝트 중 아래 쿼리문을 작성을 했는데

DB조회 개수가 7개 일때, 아래의 쿼리를 실행시키면 select User문에서 쿼리가 7번 나가더라구요,,

 

도통 이유를 모르겠어서 질문 드립니다..

@Query("select distinct new ..패키지명...user.UserScrapUserQueryDto(us, coalesce(scrap.status, false), us.selectedFirstAt) " +
        "from User us " +
        "left join fetch Work work on work.user.id = us.id " +
        "left join fetch UserScrap scrap on scrap.targetId = us.id and scrap.user.id = :userId " +
        "where us.userStatus = 'PERMITTED' and " +
        "      us.id not in (select block.targetId from Block block where block.user.id = :userId and block.status = true) " +
        "and us.id != :userId and us.role = 'USER' " +
        "order by us.selectedFirstAt desc")

 

 

아래처럼 쿼리가 한번 나간 후에

Hibernate: 

    select

        distinct user0_.user_id as col_0_0_,

        coalesce(userscrap2_.status,

        false) as col_1_0_,

        user0_.selected_first_at as col_2_0_ 

    from

        "user" user0_ 

    left outer join

        "work" work1_ 

            on (

                work1_.user_id=user0_.user_id

            ) 

    left outer join

        "user_scrap" userscrap2_ 

            on (

                userscrap2_.target_id=user0_.user_id 

                and userscrap2_.user_id=?

            ) 

    where

        user0_.user_status='PERMITTED' 

        and (

            user0_.user_id not in  (

                select

                    block3_.target_id 

                from

                    "block" block3_ 

                where

                    block3_.user_id=? 

                    and block3_.status=true

            )

        ) 

        and user0_.user_id<>? 

        and user0_.role='USER' 

    order by

        user0_.selected_first_at desc

 

 

select 쿼리로 db에서 갖고온 개수만큼 반환합니다..

 

Hibernate: 
    select
        user0_.user_id as user_id1_7_0_,
        user0_.created_at as created_2_7_0_,
        user0_.modified_at as modified3_7_0_,
        user0_.behance as behance4_7_0_,
        user0_.detail as detail5_7_0_,
        user0_.device_token as device_t6_7_0_,
        user0_.email as email7_7_0_,
        user0_.first_work_id as first_wo8_7_0_,
        user0_.info as info9_7_0_,
        user0_.instagram as instagr10_7_0_,
        user0_.magazine_view_count as magazin11_7_0_,
        user0_.notion as notion12_7_0_,
        user0_.role as role13_7_0_,
        user0_.scrap_count as scrap_c14_7_0_,
        user0_.selected_first_at as selecte15_7_0_,
        user0_.tag as tag16_7_0_,
        user0_.user_name as user_na17_7_0_,
        user0_.user_status as user_st18_7_0_,
        user0_.view_count as view_co19_7_0_,
        user0_.work_thumb_nail as work_th20_7_0_ 
    from
        "user" user0_ 
    where
        user0_.user_id=?

 

답변 주시면 정말 감사하겠습니다..

java jpa

답변 1

0

김영한

안녕하세요. 김주영님

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

최대한 단순한 코드로 문제가 되는 부분을 재현할 수 있는 작은 코드를 새로 만들어주세요.

이렇게 만든 코드의 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

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

https://bit.ly/3fX6ygx

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

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

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

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

링크: 공식 서포터즈

링크: 자주하는 질문

감사합니다.

 

SpringBoot 4.X에서의 Querydsl 설정

0

88

2

querydsl 오픈소스에 대한 질문

0

72

1

예제에서의 카운트 쿼리에서 join문과 where문은 필요없지 않나요?

0

109

1

Querydsl 6.X버전에 대해서 어떻게 생각하시나요?

0

317

2

여러 테이블 조인하여 통계치를 구하고자 할 때 어떤 방법이 더 효율적일까요

1

70

1

fetchResults()는 더이상 권장되지 않는다는데 맞나요?

0

160

1

querydsl sum() 메서드 없어요.

0

159

2

build 디렉터리 생성

0

136

2

자바 ORM 표준 JPA 프로그래밍 - 기본편 듣고 바로 학습해도 괜찮을까요?

0

114

2

현재 Querydsl에서 from절 서브쿼리를 지원하나요?

0

91

1

오타 제보 드립니다.

0

72

2

벌크 연산과 flush, clear

0

76

1

Run As Intellij 로 변경시 Q타입 import 불가

0

88

1

QHello import하기 문제 발생

0

147

2

등록된 함수 보는법(H2Dialect) 질문

0

68

2

5.0부터 Querydsl은 향후 fetchCount() , fetchResult() 를 지원하지 않기로 결정했다고 하는데 이에 맞는 강의

1

196

2

[환경설정 PDF 부트 3.0이후 설명 질문] build.gradle에 compileQuerydsl을 정의하지 않은 상태에서 Gradle->Tasks->other->compileQuerydsl을 클릭하라고 하는 이유가 무엇인가요??

1

200

1

querydsl 설정 문제

0

222

2

quey dsl 설정부분

0

158

2

count 쿼리 관련 질문입니다!

0

75

1

stringtemplate를 이용하여 where절 검색 방법 질문 드립니다.

0

89

1

답변부탁드리겠습니다.

0

89

2

(OrderSpecifier)관련 내용 어디있을가요

0

65

1

중급문법 벌크연산에서

0

81

2