Spring - игнорировать свойства JSON в запросе, но не в ответе - PullRequest
0 голосов
/ 22 июня 2019

Это действительный объект Entry, полученный из GET запроса http://domain/entry/{id}:

{
    "id": 1,
    "description": "ML Books",
    "dueDate": "2017-06-10",
    "paymentDate": "2017-06-10",
    "note": "Distribution de lucros",
    "value": 6500,
    "type": "INCOME",
    "category": {
        "id": 2,
        "name": "Food"
    },
    "person": {
        "id": 3,
        "name": "User",
        "active": true,
        "address": {
            // properties suppressed for better reading
        }
    }
}

В запросе POST я хочу сохранить первичные объекты Категория и Person просто отправляет соответствующие идентификаторы, например:

{
    "description": "NEW ENTRY",
    "dueDate": "2019-06-22",
    "paymentDate": "2019-06-22",
    "note": "Coloured pens",
    "value": 10,
    "type": "INCOME",
    "categoryId": 5,
    "personId": 5
}

Чтобы сохранить объекты без Spring, говоря, что объект person и category были null, я добавил @JsonIgnore к ним в модели, и следуют этот поток.

Он частично работал:

  • теперь он сохраняет объект только с идентификатором
  • но не извлекает объект в запросах GET

Теперь, когда извлекается запись с тем же GET запросом http://domain/entry/{id}:

{
    "id": 23,
    "description": "Pens",
    "dueDate": "2019-06-22",
    "paymentDate": "2019-06-22",
    "note": "Coloured pens",
    "value": 10,
    "type": "INCOME",
    "categoryId": null, // It supposed to bring the entire object
    "personId": null // It supposed to bring the entire object
}

PS : categoryId и personId помечены @Transient, поэтому они равны нулю.

Так как в заголовке указано, я хочу игнорировать свойства Category и Person только в запросе POST (сохранениеих), а не в запросах GET (получение их).

Любая помощь будет приветствоваться.Заранее спасибо

...