Сценарий:
У меня есть сервлет, который получает xmls, анализирует их (используя JAXB), сохраняет проанализированные данные в базу данных MySQL (используя hibernate), а также сохраняет копию xml для дальнейшего использования.
Он сохраняет этот XML-файл также при сбое анализа.
В этих случаях я получаю электронное письмо с краткой информацией об ошибке, а затем проверяю сохраненный XML-файл, чтобы выяснить, что пошло не так.
Операция проходит довольно гладко. Сервлет получает пару тысяч 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
Я получаю эту ошибку и для некоторых других "столбцов".
Эти столбцы имеют тип datetime на стороне mysql и java.sql.Timestamp
на стороне java.
Когда я смотрю на полученный XML, я вижу правильный формат даты: "2012-01-22 15:20:51"
Есть идеи, что могло пойти не так?