Получение исключения MysqlDataTruncation при попытке сохранить дату, которая была инициализирована с аргументом миллисекунды - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать дату, которая будет на несколько лет позже текущего времени.Я делаю это так:

new Date(Math.abs(System.currentTimeMillis() - 94670778000L));

Однако по какой-то причине часть года в дате становится случайным неизвестным числом, в результате чего jvm вызывает исключение MysqlDataTruncation.Это полное сообщение:

com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '55106056-02-25 05:40:34.461' for column 'lastSeenOnline' at row 1

Согласно записи Сергея здесь: Усечение данных: Неверное значение даты и времени: '' Я должен изменить аннотацию @Temporal с TemporalType.TIMESTAMP на TemporalType.TIME.Это помогает, но только потому, что часть даты затем опускается, так что это не решение, которое я ищу.

Может кто-нибудь сказать мне, что я делаю неправильно?Я только инициализирую новую дату через конструктор миллисекунд, и она должна работать, но по какой-то причине это не так.

1 Ответ

0 голосов
/ 15 февраля 2019

Все еще не уверен, что его вызывает, но удаление поля, вызывающего проблемы, из встраиваемого класса и размещение его в классе, использующем встраиваемый класс, решило проблему.Поэтому для тех, кто сталкивается с той же проблемой, не используйте @Temporal в встраиваемом классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...