JPA
QueryDSL StringTemplate이란?
Junuuu
2023. 2. 3. 00:01
728x90
개요
QueryDSL에서 SQL Function을 사용하고 싶었는데 StringTemplate이라는 키워드를 발견하여 알아보고자 합니다.
StringTemplate이란?
Expressions.stringTemplate()
Experssions.numberTemplate()
위의 메서드를 통해 QueryDSL에서도 SQL Function을 사용할 수 있습니다.
실제 활용 예시
StringTemplate createDate = Expressions.stringTemplate(
"cast(extract(epoch from {0}) as long)", qOrderSheetDetail.createDate
);
.where(
qOrderSheet.createDate.gt(createDate)
);
⚠️ Warning
실행 중에QuerySyntaxException가 발생한다면 function 이후 작성한 문법에 오류가 있을 수 있습니다. 특히 괄호를 닫지 않았거나 파라미터 개수가 정확하지 않는 등의 실수를 할 수 있으니 쿼리를 다시 한번 확인해보시기 바랍니다.
사용하기 전 고려할 사항
- ANSI SQL(표준 SQL)을 활용하는 방안을 더 고려할 수 있습니다.
- DB에 부하를 주기보다는 Application에서 처리하는 것이 더 좋을 수 있습니다.
참고자료
https://jaime-note.tistory.com/78
https://ksk-developer.tistory.com/49