상수가 필요하면 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 |