SQL function은 JPA와 같이 Dialect에 등록된 내용만 호출할 수 있다.
@DisplayName("sqlFunction")
@Test
void sqlFunction() {
jpaQueryFactory
.select(Expressions.stringTemplate(//member를 M으로 변경해서 조회할 것이다. M1, M2...
"function('replace', {0}, {1}, {2})", member.username
, "member", "M")
)
.from(member)
.fetch();
}
@DisplayName("sqlFunction2")
@Test
void sqlFunction2() {
List<String> result = jpaQueryFactory
.select(member.username)
.from(member)
/*.where(member.username.eq(Expressions.stringTemplate(//소문자로 변경
"function('lower', {0})", member.username))
)*/
.where(member.username.eq(member.username.lower()))
.fetch();
}