inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! Querydsl

질문 남기고 가요.

343

아리마

작성한 질문수 75

0

영한님, 안녕하세요.

여기서도 또 뵙게 됐네요.

아직 강의는 30% 정도 수강한 상태이지만, 앞 서서 질문드립니다.

1. function 을 사용하여 replace 활용을 보여주셨는데요. 제가 MariaDB 를 사용 중인데

MariaDB 의 Dialect 에는 강의에서 보여주신 H2Dialect 처럼 fucntion 들이 없는 것 같더라고요..

replace 같은 기본 기능들을 Maria 에서는 활용할 수 없는 것인지요? 

2.  SQL 에 Enum 의 Value 를 담는 것이 가능한지요? 

concat 설명 하실 때,  Enum 사용하게 되면  stringValue() 떠오르실거다 라고 짧게 말씀하시고 넘어가셨는데

이와 연관이 있을까요?

아무튼 SQL 에 Enum 코드말고 Value 를 담을 수 있는 지 궁금합니다.

JPA java

답변 3

0

김영한

확인해보니 MariaDBDialect에는 정말 replace가 없군요!

이런 경우 사용하는 MariaDBDialect를 상속받은 클래스를 직접 만들고, 다음과 같은 함수 등록 코드를 직접 만든 클래스에 등록을 해주셔야 합니다.

(등록하지 않은 함수는 호출할 수 없습니다.)

registerFunction( "replace", new StandardSQLFunction( "replace", StandardBasicTypes.STRING ) );

그리고 직접 만든 Dialect를 application.yml에 등록하시면 됩니다.

(등록 방법은 spring boot hibernate dialect 키워드를 구글에 검색해보세요^^)

그리고 두번째로 Enum은 답변해주신 내용을 자세히 보니 제가 생각했던, ENUM안에 CODE, VALUE가 있는 개념을 질문하신게 아니었군요. 질문하신 내용은 별도의 코드 테이블을 운영하고 있을 때에 관한 질문이셨군요.

엔티티로 조회하면 안되겠지만, DTO로 조회하면 JPQL처럼 Querydsl도 가능합니다. 단순히 코드 테이블을 LEFT 조인하고, select 절에서 조인된 Value를 찍어서 가져오면 됩니다^^

0

아리마

영한님

MariaDBDialect 의 부모클래스를 따라가면 MySqlDialect 를 찾을 수 있는데

replace 는 찾을 수가 없네요. 영한님처럼 코딩을 해도 오류가 발생하고요..

MySql 에서 Replace 를 지원하는데 왜 사용할 수가 없을까요 ㅠ

그리고 Enum 의 경우, 

말씀해 주신 Converter 는 DB 에서 관리하는 코드 형태에 차이가 있을 경우 사용하는 듯 한데요.

저는 단순히 Select 결과절 을 화면에 출력시켜줄 때,  Code 말고 Value 를 쉽게 출력시켜줄 수 있는 방법이

QueryDsl 에 있을까해서 질문을 드려봤습니다. 아마도 없겠죠..

저는 영한님 강좌에서 Enum 을 알게 됐는데

보통 코드를 Enum 형태가 아닌 DB에 구성하게 되면 Select 절에서 LeftJoin 을 통해 Value 를 쉽게 얻어올 수가 있는데

Enum 은 Select 절 결과로 DTO 에 바로 담지 못하고 별도의 부가 처리를 해야 되는 것이

좀 귀찮게 느껴졌습니다.  이건 어쩔 수 없는 거겠죠?

0

김영한

안녕하세요 아리마님^^
1번은 MariaDBDialect의 부모 클래스를 따라가보시면 있을꺼에요^^

2번은 JPA책 14.2 @Converter 를 보시거나, jpa AttributeConverter를 검색해보면 원하시는 답을 찾을 수 있을꺼에요.

감사합니다

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

90

1

오타 제보 드립니다.

0

72

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