inflearn logo
강의

講義

知識共有

本当! Querydsl

querydsl에서의 값 타입 컬렉션

1103

gusdn85554

投稿した質問数 47

1

영한님 서포터즈님들 안녕하세요

강의에서는 엔티티 끼리의 DTO 변환은 조인을 통해 쉽게 할 수 있는데, querydsl의 프로젝션을 사용해서 DTO를 변환하는 중에 값 타입 컬렉션은 어떻게 할 수 있는지 궁금해서 여쭤보게 됐습니다.

현재 재 코드입니다

Club.class

PetSizeType(Enum)

EligibleBreed

이제 querydsl을 이용해서 DTO를 변환시키면 not an entity 라는 에러가 발생합니다

일단 값 타입 컬렉션은 entity가 아니기 때문에 해당 에러 로그는 이해가 됩니다

그렇다면 값 타입 컬렉션은 조인도 할 수 없기 때문에 10개의 Club을 가져오려면 select 쿼리가 20개가 나가게 되는데, 이를 최적화하는 방법이 없을까요?

 

아래의 사진은 하나의 club을 조회할 때 나가는 쿼리입니다!

 

그리고 제 개인적인 생각으로는 실무에서도 Enum타입을 자주 사용할 것 같은데,, 같은 Enum Type을 저장하기 위해서 따로 엔티티를 만드는 편인가요??(값 타입 컬렉션을 사용하지 않는지 궁금합니다)

 

감사합니다

JPA java

回答 3

1

yh

안녕하세요. gusdn85554님

질문1, 질문2를 확인해보았습니다.

간단하게 답변을 드리자면, ElementCollection도 1:N 관계라 생각하시면 됩니다.

따라서 활용2편에 설명드린 내용으로 최적화해야 합니다.

활용2편을 복습해보시면 답을 찾으실 수 있을거에요.

그리고 DTO로 조회할 때는 1:N 관계의 데이터를 그대로 넣을 수 없습니다. 이 경우 조인한 다음에 필드의 값 하나하나를 직접 매핑해서 넣어주어야 합니다. 지금처럼 1:N 관계 자체를 넣으시면 안됩니다.

감사합니다.

 

0

gusdn85554

안녕하세요 영한님 주말에 답변 감사드립니다

https://drive.google.com/file/d/13TVNk7HjfIfRNDqcPK3RnZ2IyTowL0ey/view?usp=sharing

해당 링크에서 pdf 파일에 설명이 들어있습니다

감사합니다

 

0

yh

안녕하세요. gusdn85554님

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

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

https://bit.ly/3fX6ygx

 

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

 

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

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

SpringBoot 4.X에서의 Querydsl 설정

0

86

2

querydsl 오픈소스에 대한 질문

0

71

1

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

0

108

1

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

0

316

2

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

1

69

1

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

0

160

1

querydsl sum() 메서드 없어요.

0

158

2

build 디렉터리 생성

0

136

2

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

0

114

2

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

0

90

1

오타 제보 드립니다.

0

71

2

벌크 연산과 flush, clear

0

76

1

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

0

87

1

QHello import하기 문제 발생

0

147

2

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

0

68

2

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

1

195

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