오봉이와 함께하는 개발 블로그
Querydsl - 상수, 문자 더하기 본문
728x90
상수, 문자 더하기
상수가 필요하면 Expressions.constant(xxx)
를 사용하자.
@Test
void constant() {
List<Tuple> result = queryFactory
.select(member.username, Expressions.constant("A"))
.from(member)
.fetch()
for (Tuple tuple : result) {
System.out.println("tuple = " + tuple);
}
}
tuple = [member1, A]
tuple = [member2, A]
tuple = [member3, A]
tuple = [member4, A]
위와 같이 최적화가 가능하면 SQL에 constant 값을 넘기지 않는다.
상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다.
문자 더하기 concat
@Test
void concat() {
// {username}_{age}
String result = queryFactory
.select(member.username.concat("_").concat(member.age.stringValue()))
.from(member)
.where(member.username.eq("member1"))
.fetchOne()
System.out.println("result = " + result);
}
result = member1_10
member.age.stringValue()
부분이 중요한데, 문자가 아닌 다른 타입들은stringValue()
로 문자로 변환할 수 있다.member.age.stringValue()
를 사용하지 않으면 타입이 다르기 때문에 오류가 발생한다. (username = String, age = int) 이 방법은 ENUM을 처리할 때도 자주 사용한다.
인프런 김영한 지식공유자님 강의 : 실전! Querydsl
728x90
'BE > JPA' 카테고리의 다른 글
Querydsl - 프로젝션 결과 반환 (DTO 조회) (0) | 2022.09.18 |
---|---|
Querydsl - 프로젝션 결과 반환 (기본) (0) | 2022.09.18 |
Querydsl - Case 문 (0) | 2022.09.18 |
Querydls - 서브 쿼리 (0) | 2022.09.18 |
Querydsl - 조인 (페치 조인) (0) | 2022.09.17 |
Comments