sql error - усечение данных для datetime - использование свойства java / hibernate / timestamp - PullRequest
1 голос
/ 13 февраля 2012

Сценарий:

У меня есть сервлет, который получает 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"

Есть идеи, что могло пойти не так?

1 Ответ

0 голосов
/ 27 марта 2012

У меня не было этой ошибки в последнее время.Недавно я позаботился о проблеме параллелизма с использованием SimpleDateFormat, так что, возможно, это была проблема.

...