728x90
반응형
JPQL 날짜 조회 시 타임존 제거하기
request 를 받을 때 String 타입으로 받는다면 간단하게 해결 가능함
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDate contractDate;
위와 같이 데이터를 받고 있었다면
private String contractDate;
이렇게 받아서 jpql에서 조회하면 타임존이 붙지 않음
다만 jpql 쿼리문에서는 date함수를 사용해 String 타입을 Date 타입으로 변환시켜야 함
예시 코드 👇
@Query(value = "select * from order where contractDate >= DATE(:contractDate)")
List<ContractDto> getOrderList(String contractDate);
테스트 해본 결과 파라미터를 Date, LocalDate 타입으로 받는다면 아무리 formatting을 해줘도 타임존 문제가 발생하기에 조회 시 타입을 string 으로 하는 방법이 가장 간단해 보임
반응형
'프로그래밍 > JPA' 카테고리의 다른 글
[JPA Error] Reason: Validation failed for query for method public abstract 오류 해결 방법 (0) | 2023.04.27 |
---|---|
[JPA] JPQL alias error 해결 방법 (0) | 2023.04.20 |
[JPA] JPA setter 사용하지 않는 이유 (0) | 2023.04.14 |
[JPA] Repository find 와 entityManager로 조회하는 것의 차이점 (0) | 2023.04.11 |
[JPA] JPA Entity Id를 String 으로 설정하기 (0) | 2023.04.10 |