Я создаю приложение JavaScript (React / и т. Д.), Которое использует ресурсы REST с сопутствующего сервера (написано в Spring Boot / REST / JPA).
В основном, я тяну либо списки сущностей, либо отдельные сущности -
.../rest/tasks?page=0
.../rest/tasks/1234567
- где каждая сущность выглядит так:
{
"id" : 20180501150819347,
"requested" : "2018-05-01T19:08:19.353+0000",
"cancelled" : null,
"delayUntil" : null,
"started" : "2018-05-01T19:08:30.140+0000",
"ended" : "2018-05-01T19:08:31.610+0000",
"status" : "complete",
...
Проблема в том, что по какой-то причине поле «id» в моей сущности увеличивается!
Например:
1. Я делаю запрос: /rest/tasks
, чтобы получить список отправленных задач.
2. Полученный ответ выглядит так:
...
"tasks": [ {
"id" : 20180501150819347,
...
Это правильно: сущность Task с таким идентификатором существует в моей базе данных.
3. Тогда ответ JSON дается моему приложению как:
...
"tasks": [ {
"id" : 20180501150819348,
...
4. Я определенно могу получить эту сущность через rest/tasks/...9347
- но, как в (2) и (3), полученный JSON-объект имеет неправильный (увеличенный) идентификатор.
Странная часть: кажется, что это происходит на уровне браузера . Когда, например, я проверяю сетевой запрос / ответ в Chrome, я вижу, что ответ raw содержит правильный идентификатор, а довольно напечатанный ответ содержит неправильный (увеличенный) идентификатор. Я проверял это как с Chrome (66.0.3359.139), так и с Firefox (59.0.3).
Однако это единственный тип сущности, который проявляет такое поведение. Я проверил все остальные типы сущностей (с идентификаторами int
и long
). Это поведение согласованно при нескольких перезапусках (как приложения, так и браузера).
Chrome - ответ (необработанный)
Chrome - ответ (довольно напечатанный)