⚡ 내용
속도적인 이슈로 인해서 일부 queryFactory를 사용하는 부분을 SQLQueryFactory로 변경을 했다.
이때 조회 방식은 동일하지만 내부 구현체가 좀 달라서 그런지 LocalDate 타입으로 반환하는 결과값이 이상하게 나오는 부분이 있어서 정리를 하려고 한다.
⚡ 이슈 정리
나는 오늘 날짜를 기준으로 데이터를 조회 했지만 하루전 데이터가 나와서 데이터가 꼬이는 부분이 발생을 했다.
실제 결과 값에 대한 디버그를 해보니 하루전 데이터가 나오고 있었다.
최근에 변경한 부분이 queryFactory 를 sqlQueryFactory로 변경한 부분이 있어서 실제 결과 값을 만드는 부분에 대해서 클래스 내용을 확인 해보니 반환하는 부분에서 좀 이상한 부분이 있어서 공유를 하려고 한다.
아래의 이미지는 실제 쿼리가 만들어지는 구현체를 따라 들어가면서 확인한 내용이다.
마지막 이미지를 보면 getValue 인터페이스에서 구현체를 보면 타입에 따라서 구현체가 존재한다.
( 내가 결과값을 받아야 하는 타입은 LocalDate 이다.)
아래 이미지를 참조해서 보면 getValue() 구현체를 보게 되면 TimeZone를 UTC로 바꾸고 있다 보니 실제 DB에서 조회하는 날짜와 반환시 날짜가 맞지 않는 이슈가 발생했다.
반응형
'Spring' 카테고리의 다른 글
[JPA] Entity Default 값 저장 이슈 정리 (0) | 2024.08.21 |
---|---|
Spring boot + vue 프로젝트 (2) (0) | 2024.04.06 |
Spring boot + vue 프로젝트 (1) (0) | 2024.04.04 |
[JPA] Spring boot 3.x.x 에서 QueryDsl Date Type 사용 방법 (0) | 2024.01.09 |
[Spring] Spring boot 3.x.x 버전 마이그레이션 내용 정리 (0) | 2023.12.31 |