com.googlecode.objectify.LoadException: ошибка отметки времени вне диапазона - PullRequest
0 голосов
/ 24 января 2020

В моем хранилище данных метка времени была сохранена как целое число, что-то вроде этого -8499613106649. При чтении этой сущности Objectify выдает следующее исключение:

com.googlecode.objectify.LoadException: Error loading Key{projectId=**********}]}: timestamp out of range: 8499613106648, 250560000

Я пытался изменить метку времени в методе @onLoad и добавить l в конце целого числа, чтобы оно победило ' не исключение. Но это не работает, так как сущность не смогла загрузить.

Есть ли способ изменить метку времени перед загрузкой или перехватить исключение, а также изменить метку времени и сохранить в хранилище данных?

1 Ответ

0 голосов
/ 25 января 2020

Это довольно странно - может помочь, если вы разместите полную трассировку стека. Мне любопытно, откуда это сообщение.

Есть несколько способов справиться с тем, что "в моем хранилище данных есть что-то странное".

  • Изменить тип вашего поля в Long (или String или что-то еще) и преобразовать в Date / Instant / что угодно в вашем методе получения. Вы можете отменить изменение после повторного сохранения данных в правильном формате.

  • Введите свой Translator для этого типа, который принимает более щедрый ввод. Посмотрите на существующие переводчики в источнике Objectify.

  • Используйте низкоуровневый API для перезаписи "поврежденных" данных.

Какие я выбор зависит от кодовой базы и сложности удаления данных.

...