728x90
반응형
MySQL에 DateTime 필드에 값이 없을 경우 기본 값으로 "0000-00-00 00:00:00" 들어가는 경우가 있다.
이럴 경우 쿼리해 온 값이 Java의 Model 객체에 Setter로 값을 넣는 과정에서 에러가 발생한다.
에러 메시지는 다음과 같다.
"Cannot convert value '0000-00-00 00:00:00' from column 4 to TIMESTAMP"
뭐 '0000-00-00 00:00:00' 값은 timestamp 값으로 바꿀 수 없다는 메시지 같은데...
이럴 경우 어떻게 해결해야 하나 고민하다가 구글링을 통해 알게 된 내용을 정리한다.
보통 Model 객체의 Setter를 아래와 같이 작성하게 된다.
setter에서 Date 객체로 받아야 하는데 값을 넘겨줄 수 없기에 이런 경우에는 DB 접속 옵션을 아래처럼 바꾸어 주면 된다.
jdbc:mysql://localhost/myDatabase?zeroDateTimeBehavior=convertToNull
zeroDateTime일 경우 null을 반환하라는 의미같은데
위와 같이 옵션을 설정한 후 디버깅을 해 보면 zeroDateTime일 경우 setter에 실제로 null 값이 들어오게 된다.
참고 : http://stackoverflow.com/questions/1363527/cannot-convert-0000-00-00-000000-to-timestamp
728x90
반응형
'Java' 카테고리의 다른 글
추상클래스와 인터페이스의 차이 (0) | 2021.02.08 |
---|---|
Java 기본 내용을 위한 북마크 (0) | 2021.01.28 |
RequestBody를 Enum 값에 Setting 할 때 생기는 문제 (0) | 2019.11.13 |
Java8의 for, stream foreach, parallelStream foreach 간단 속도 테스트 (0) | 2017.02.14 |
원격지의 이미지 파일을 읽어서 원하는 곳에 업로드 하기 (0) | 2017.02.09 |