SpringBoot 2.3. + И Spring Data Rest: возвращать пустой массив вместо EmptyCollectionWrapper - PullRequest
0 голосов
/ 13 июля 2020

У нас была та же проблема, что упомянута здесь, и мы использовали предоставленный обходной путь с процессором ресурсов.

Spring Data REST возвращает EmptyCollectionEmbeddedWrapper вместо пустой коллекции

теперь мы перешел на SpringBoot 2.3, который обновляет свои зависимости до HATEOAS 1.x, что принесло много критических изменений. следуя руководству по миграции для HATEOAS 1.x, исправлены ошибки компилятора, но остались исключения времени выполнения, когда Spring пытается преобразовать классы, но не может.

мы хотели бы иметь общий c подход к слою независимо от которые оставляют конечную точку и возвращают пустой массив вместо CollectionWrapper с его нулевыми атрибутами. настройка его для каждой модели не поддерживается.

РЕДАКТИРОВАТЬ: мы уже устанавливаем конфигурацию, чтобы всегда возвращать JSON, хотя она по-прежнему возвращает эти «нулевые объекты»

config.setReturnBodyOnCreate(true).setReturnBodyOnUpdate(false).setDefaultMediaType(MediaType.APPLICATION_JSON_UTF8);

для пример: здесь поиск не имеет совпадений, массив содержимого по-прежнему возвращается с одним элементом, который анализируется в «нулевой объект»

{
  "links": [
    {
      "rel": "self",
      "href": "http://api.service.test/service/campaigns/search/findByActive?active=false&page=0&size=20"
    }
  ],
  "content": [
    {
      "relTargetType": "com.test.service.campaign.model.Campaign",
      "collectionValue": true,
      "value": [
      ],
      "rel": null
    }
  ],
  "page": {
    "size": 20,
    "totalElements": 0,
    "totalPages": 0,
    "number": 0
  }
}
...