- QueryDSL에서도 사용 중인 DBMS에 존재하는 함수를 호출할 수 있다.
- 사용 중인 Dialect에 등록된 함수만 호출할 수 있다.
- Dialect에 등록되지 않은 함수를 호출하기 위해서는 사용 중인 Dialect를 상속받은 커스텀 Dialect를 생성해야 한다.
- 함수의 반환 자료형에 따라서
Expressions.xxxTemplate
를 통해 사용한다.- xxx에는 자료형의 이름이 들어간다.
@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);
}
}