JPA
[Querydsl] SQL function 호출하기
주씨.
2024. 4. 20. 18:15
728x90
# member → M
@Test
public void sqlFunction(){
List<String> result = queryFactory
.select(Expressions.stringTemplate(
"function('replace', {0}, {1}, {2})",
member.username, "member", "M"))
.from(member)
.fetch();
}
select m.username from member m;
select replace(m.username, 'member', 'M') from member m;
# 소문자로 변경해서 비교하라
@Test
public void sqlFunction2(){
List<String> result = queryFactory
.select(member.username)
.from(member)
.where(member.username.eq(
Expressions.stringTemplate("function('lower', {0})", member.username)))
.fetch();
}
- lower 같은 ansi 표준 함수들은 querydsl 이 상당부분 내장하고 있다.
- 아래와 같이 처리해도 결과는 같다
@Test
public void sqlFunction2(){
List<String> result = queryFactory
.select(member.username)
.from(member)
.where(member.username.eq(member.username.lower()))
.fetch();
}