場景:SQL錯誤 - datetime數據截斷 - 用java /休眠/ timestamp屬性
我已經接收個XML,解析他們的servlet(使用JAXB),仍然存在解析數據到MySQL數據庫(使用休眠)並保存xml的副本以供將來參考。 解析失敗時也會保存這個xml。 在這些情況下,我會收到一封包含錯誤摘要的電子郵件,然後檢查保存的xml以找出錯誤的線索。
該操作運行相當順利。該servlet每天接收幾千xmls。
問題:
每天至少一次,我得到這樣的錯誤:
org.hibernate.exception.DataException: could not insert ..........
Caused by: com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '20122012-01-22 15:20:51' for column 'createdAt' at row 1
我得到這個錯誤對其他一些「列」爲好。 這些列是mysql端的日期時間類型,而java端是java.sql.Timestamp
。
當我看看這是收到我看到正確的日期格式的XML:「2012-01-22 15時二十分51秒」
任何想法可能是什麼出了問題?
看起來真奇怪。我懷疑還有另外一個將數據插入這個表的過程(也許也可以通過Hibernate,但HQL?)。嘗試設置'org.hibernate.SQL = TRACE'日誌級別,並確保源代碼正是您所期望的。 – 2012-02-19 13:35:43
我會在幾天後嘗試這個,在其他東西上工作...... – samz 2012-02-21 07:54:28