[Querydsl] SQL Function 호출

Welcome to Seoyun Dev Log·2023년 4월 28일
0

JPA

목록 보기
9/15

SQL Function 호출하기

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

  • member -> M으로 변경하는 replace 함수 사용
@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();
    }
  • 소문자로 변경해서 비교
    : lower 같은 ansi 표준 함수들은 querydsl이 상당부분 내장하고 있다.
    따라서 다음과 같이 처리해도 결과는 동일하다
@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();
    }
profile
하루 일지 보단 행동 고찰 과정에 대한 개발 블로그

0개의 댓글