g5_shop_order 테이블에서 od_invoice_time이라는 필드가 있다.
필드 정보는 다음과 같다.
Field : od_invoice_time
Type : datetime
Default : 0000-00-00 00:00:00
그러나 이 필드를 불러와 Java Class에 매핑하며 문제가 발생했다.
오류 내용은 다음과 같다.
There was an unexpected error (type=Internal Server Error, status=500).
Error attempting to get column 'od_invoice_time' from result set. Cause: java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp ; SQL []; Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp; nested exception is java.sql.SQLException: Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
이 문제는 datetime 타입의 필드에 Default값을 0000-00-00 00:00:00 으로 주었을 때 나타나는 문제라고 한다.
다음과 같이 .properties 파일에 datasource 세팅을 해주어 해결하였다. mysql에서 데이터를 읽어올 때 제로값을 가진 데이터는 null로 읽어오라는 설정을 추가하는 것이다.
spring.datasource.tomcat.connection-properties=zeroDateTimeBehavior=convertToNull;
Comments