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

빅데이터AI님의 프로필 이미지
빅데이터AI

작성한 질문수

실전! Querydsl

SQL function 호출하기

Function 호출 오류

작성

·

808

0

@Test
public void sqlFunction() {
List<String> result =
queryFactory
.select(Expressions.stringTemplate("function('replace', {0}, {1}, {2})", member.username, "member", "M"))
.from(
member)
.fetch()
;
for (String s : result) {
System.
out.println("s = " + s);
}
}

위와 같이 실행했을 경우 아래 오류가 발생합니다.

Caused by: org.hibernate.QueryException: No data type for node: org.hibernate.hql.internal.ast.tree.MethodNode \-[METHOD_CALL] MethodNode: 'function (replace)' +-[METHOD_NAME] IdentNode: 'replace' {originalText=replace} \-[EXPR_LIST] SqlNode: 'exprList' +-[DOT] DotNode: 'member0_.username' {propertyName=username,dereferenceType=PRIMITIVE,getPropertyPath=username,path=member1.username,tableAlias=member0_,className=yhpark.querydsl.entity.Member,classAlias=member1} | +-[ALIAS_REF] IdentNode: 'member0_.member_id' {alias=member1, className=yhpark.querydsl.entity.Member, tableAlias=member0_} | \-[IDENT] IdentNode: 'username' {originalText=username} +-[PARAM] ParameterNode: '?' {label=1, expectedType=null} \-[PARAM] ParameterNode: '?' {label=2, expectedType=null}

답변 1

1

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

안녕하세요. 빅데이터AI님^^

SQL function은 JPA와 같이 Dialect에 등록된 함수만 호출할 수 있습니다.

자세한 등록과 사용 방법은

자바 ORM 표준 JPA 프로그래밍 - 기본편 강의 

섹션 10에서 JPQL 함수 부분을 참고해주세요.

감사합니다.

빅데이터AI님의 프로필 이미지
빅데이터AI

작성한 질문수

질문하기