JPA

QueryDsl - Date 작성시 Expressions.dateTemplate를 사용하자!

천천히올라가자 2019. 9. 3. 22:20
반응형

사실 꼭 그렇지 않지만 나는 entity로 생성된 Q파일의 DateTimePath<java.util.Date> type은  Expressions.dateTemplate을 사용하는 것을 선호한다

 

그 이유는 예제를 보자.

전체 쿼리를 보여주면 오히려 복잡할 것 같아 짤라서 첨부했습니다.

updDm은 DateTimePath이다 그래서 비교 대상은 날짜 관련 객체만 올 수 있다.

그래서 나는 처음에는 생각 없이 저렇게 사용 하였다.

updDm의 값은 값은 이러하다.

그리고 querydsl을 실행하였더니....

 

조회 결과가 362066건이 나와버렸다...

분명 이렇게 나올 수 없는 건수였는데 그래서 바인딩 된 값을 확인하였더니

 

Wed Jan 23 09:22:21 KST 2019 updDm값이 저렇게 바인딩 되었다. 58만개에서 줄긴? 줄었다ㅋㅋ

 

그래서 Date 관련 templates가 있을것 같아서 찾아보니

이렇게 사용하고 실행해 보았다.

그러니 짜잔! 73건만 나오게 되었다.

바인딩 된 값은 이러하다

 

사실 별거가 분명히 아니며 당연한 결과다 실제로 mybatis를 사용했을 땐 이런 경험을 해본적이 없다..ㅋㅋ

querydsl을 사용하면서 상당히 별거 아닌 일에 힘을 많이 쏟지만 경험이라 생각하고 오늘도 웃고 넘어간다

그리고 혹시나 나 처럼 누군가가 이러한 시행착오에서 빨리 벗어나길 바라는 마음으로 글을 쓴다.

 

다른 방법이 있으신분들은 댓글 달아주세요 ^ㅡ^

 

반응형