При десериализации JPA @Entity
с Джексоном, я бы хотел, чтобы Джексон работал над управляемым экземпляром, если он существует, десериализуя затем все его свойства на нем; в противном случае создается новый переходный.Deserialize JSON в управляемые объекты JPA с Jackson
Скажем, у меня есть Person
в базе данных, как:
+----+------+--------------+
| id | name | favoriteHero |
+----+------+--------------+
| 21 | John | NULL |
+----+------+--------------+
И я хочу десериализации этот JSON
{
"id": 21,
"favoriteHero": "Batman"
}
используя
Person john = objectMapper.readValue(jsonString, Person.class);
то мне нужно john
быть JPA управляемый объект, сначала полученный id
от persistence co NTEXT, затем favoriteHero
установлен Бэтмен, так что
john.getId() == 21;
john.getName() == "John";
john.getFavoriteHero() == "Batman";
Возможно ли это?
Я попытался использовать JsonDeserializer
, но он использовал бы извлеченный объект из базы данных и не продолжал бы устанавливать значения (и он не может отступать от десериализации по умолчанию, если не найден в базе данных).
Я не могу использовать '@ JsonCreator', так как я не могу загромождать код сущности с уровнем базы данных. –