У меня есть список объектов домена, сохраняемых в столбце postgres jsonb (hibernate / jackson).Сохранение работает, как и ожидалось, но я получаю исключение при отображении при десериализации.Похоже, что Джексон пытается десериализовать объект домена, а не список объектов домена, как указано типом.
Это поле.Он сериализован и правильно сохранен как список магазинов.
@TypeDef(name = "stores",
typeClass = JSONBUserType.class,
parameters = {
@Parameter(name = JSONBUserType.CLASS,
value = "com.project.domain.metadata.Store")
}
)
@Column(name = "stores")
@Type(type = "stores")
private List<Store> stores;
Это ошибка, которую я получаю при получении сохраненной информации.Похоже, Джексон пытается десериализовать его в объект Store, а не List<Store>
.
org.springframework.orm.jpa.JpaSystemException: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.tgt.mkt.customdam.domain.metadata.Store out of START_ARRAY token
at [Source: [{"id": "T1230", "description": "store description"}]; line: 1, column: 1]; nested exception is org.hibernate.HibernateException: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of com.tgt.mkt.customdam.domain.metadata.Store out of START_ARRAY token
at [Source: [{"id": "1230", "description": "store description"}]; line: 1, column: 1]
Вот фрагмент тела запроса, который я отправил, чтобы сохранить информацию с помощью Postman.Есть ли причина, по которой Джексон сможет десериализовать список из вызова REST, но не из БД?
"stores": [
{
"id": "T1230",
"description": "store description"
}
],