Published 2022. 7. 25. 15:35

상수가 필요하면 Expressions.constant(xxx) 사용

@Test
    public void constant() {
        List<Tuple> result = queryFactory
                .select(member.username, Expressions.constant("A"))
                .from(member)
                .fetch();

        for (Tuple tuple : result) {
            System.out.println("tuple = " + tuple);
        }
    }
결과 :  member1, A
참고: 위와 같이 최적화가 가능하면 SQL에 constant 값을 넘기지 않는다. 상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다.

 

 

문자 더하기 concat

 @Test
    public void concat() {
        List<String> result = queryFactory
                .select(member.username.concat("_").concat(member.age.stringValue()))
                .from(member)
                .where(member.username.eq("member1"))
                .fetch();

        for (String s : result) {
            System.out.println("s = " + s);
        }
    }
결과: member1_10
참고: member.age.stringValue() 부분이 중요한데, 문자가 아닌 다른 타입들은 stringValue() 로 문자로 변환할 수 있다. 이 방법은 ENUM을 처리할 때도 자주 사용한다.

 

 

 

 

출처 : 김영한 JPA 스프링 데이터 강의

'Querydsl' 카테고리의 다른 글

프로젝션과 결과 반환 - DTO 조회  (0) 2022.07.25
프로젝션과 결과 반환 - 기본  (0) 2022.07.25
Case 문  (0) 2022.07.25
서브 쿼리  (0) 2022.07.25
조인 - 페치 조인  (0) 2022.07.25
복사했습니다!