본문 바로가기

쿠러미

LocalDateTime, DATETIME 불일치 해결

스프링부트에서 querydsl을 사용할 때 날짜 비교를 할 시, 형식이 일치하지 않는 오류가 일어났다.

 

우선 where절에서 날짜 비교를 할 시, jpa가 소스코드를 쿼리로 변환할 때 자동으로 데이터 형식을 변환해준다.

 

문제는 select 단계에서 날짜 비교를 할 때이다.

select 쿼리결과에서 해당하는 컬럼을 가져오는 것인데, 이 단계에서 날짜 비교를 할 때는 변환해주지 않는다.

따라서 쿼리 select 단계가 아닌, 객체로 쿼리결과를 매핑한 다음 후처리를 하던가, Case 문으로 직접 실행해야한다.