假設有個 Domain Class 的定義:
class Book {
Date publish
}
其中 publish 用來儲存發佈日期,所以在資料庫會有:
名稱為 book 的 DB Table
名稱為 publish 的 Column(DATETIME)
但是在資料被建立時,MySQL 會自動在缺少日期設定、又是 NOT NULL 的日期欄位,自動填入「0000-00-00 00:00:00」這個時間。
在 Hibernate 取出資料時,由於這個不正確的時間值轉換成 Timestamp 會發生失敗,所以就會噴出錯誤如下:
2013-01-16 20:40:53,443 [ajp-bio-8009-exec-1] ERROR util.JDBCExceptionReporter - Value '0000-00-00 00:00:00' can not be represented as java.sql.Timestamp
解決的方法不難,就是再 JDBC Connection String 加上參數設定。
zeroDateTimeBehavior=convertToNull
沒有留言:
張貼留言