Java
MySQL의 zero date("0000-00-00 00:00:00") 값이 Date 값으로 넘어오지 않는 경우
체리필터
2015. 4. 6. 11:07
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
반응형