querydsl SQL function
SQL function은 Dialect에 등록된 function만 호출할 수 있다.
- Expressions.~Template() 사용
예제1 - replace
List<String> result = queryFactory
.select(
Expressions.stringTemplate(
"function('replace', {0}, {1}, {2})",
member.username,
"member",
"M"))
.from(member)
.fetch();
예제2 - lower
List<String> result = queryFactory
.select(member.username)
.from(member)
.where(member.username.eq(
Expressions.stringTemplate(
"function('lower', {0})",
member.username)))
.fetch();
- lower와 같이 모든 DB에서 공통적으로 지원하는 ansi 표준 함수들은 querydsl에서 기본적으로 지원한다.
List<String> result2 = queryFactory
.select(member.username)
.from(member)
.where(member.username.eq(member.username.lower()))
.fetch();
댓글남기기