-
QueryDSL StringTemplate이란?JPA 2023. 2. 3. 00:01
개요
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
'JPA' 카테고리의 다른 글
JPA Persistable으로 성능최적화 해보기 (0) 2023.09.04 JPA 복합키 엔티티 (0) 2023.02.08 QueryDSL이란? (0) 2023.02.01 QueryDSL fetchCount() deprecated 대안 (0) 2022.12.07 동적쿼리란? with Querydsl (0) 2022.09.07