Проблемы с точностью TimeStamp в сервисах RESTful - PullRequest
0 голосов
/ 26 апреля 2019

Я работаю с некоторыми данными на postgreSQL и извлекаю их, используя JPA спецификации. При отображении их в Angular front-end я уже вижу, что у даты отсутствует точность, а именно из 2018-01-26 11:48:07.13487 это что-то вроде 2018-01-26 11:48:07.134, то есть с точностью до 2 цифр. Теперь проблема в том, что этот столбец является частью primary key, поэтому я не могу работать над такими операциями, как put, потому что дата не будет совпадать.
Проблема действительно происходит в службах REST. Если я печатаю данные на затмении, точность даты выглядит совершенно нормально, но затем, когда я проверяю их в REST, они теряют 2 цифры точности 2018-01-26T10:48:07.134+0000.
И наоборот, я могу попытаться зафиксировать точность во внешнем интерфейсе (то есть 2018-01-26 11:48:07.13487), а затем выполнить запрос put. На заднем плане я могу заметить, что он теряет точность и возвращается к 2018-01-26 11:48:07.134.

Я тестирую очень простые REST фул сервисы, например:

@GetMapping("/getAllData")
  @ResponseBody
  public List<StammSolvaraJahr> getAllData() {
    EntityManager em = Connection.getEntityManger();
    return em.createQuery("SELECT ssj FROM StammSolvaraJahr ssj").setMaxResults(100).getResultList();
  }

1 Ответ

1 голос
/ 26 апреля 2019

Поэтому использование меток времени в качестве ключей не рекомендуется, та же причина для типов с плавающей запятой. Обратите внимание, что JSON не определяет конкретное представление для даты / времени и, следовательно, нет точности / разрешения, которое должно поддерживаться. Так что вы обязательно попадете в беду, если будете полагаться на нее. Вариант может быть отправить метку времени, например, с. разрешение в секундах в одном поле и дробные части (например, в наносекундах) в другом целочисленном поле.

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