문제 증상 : LocalDate 형식을 사용 할때 따옴표가 붙지 않는다.
Java >
LocalDate startDate;
xml >
Select * From Table Where startDate = #{startDate}
원하는 결과 >
Select * From Table Where startDate = '2020-06-01'
실행된 결과 >
Select * From Table Where startDate = 2020-06-01
-------------
예상 원인 1. Mybatis 구 버전에서 java8의 java.time 형식을 지원하지 않는 문제가 있음, 이 것이 그 문제인가? (연관링크)
해결방안1) handler 추가하기
1-1) mybatis-typehandlers-jsr310 라이브러리 추가 -> 해결안됨
1-2) mybatis-config.xml에 handler 직접 선언 -> 해결안됨
예상 원인 2. 직렬화에 실패했다..
해결방안1) Json DateFormat을 붙여준다
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
LocalDate startDate;
-> 안됨.
예상 원인 2. LocalDate는 원래 따옴표가 붙지 않음
해결방안1) Date 타입으로 변경시 원하는대로 동작함(따옴표 붙음)
-> 데이터타입 변경 - TimeStamp or String
-> 따옴표를 붙여준다.. : DATE_FORMAT('${startDate}', '%Y%m')
해결방안2) String 처럼 쓸 수 있는 방법을 찾는다.
반응형
'Database' 카테고리의 다른 글
[Oracle] Describe Table (0) | 2022.06.14 |
---|---|
[MySQL] Limit 성능 (0) | 2021.07.01 |
MySQL PK 순서 (0) | 2021.02.10 |
MySql - MUL key (0) | 2020.04.23 |
MySql DB/테이블 사이즈 확인을 위한 쿼리 (0) | 2020.01.29 |