Десериализация map в objectMapper
У меня есть сервер, который возращает HashMap<ProductEntity, Integer>
при попытке извлечь map путем
TypeReference<HashMap<ProductEntity, Integer>> tr = new TypeReference<HashMap<ProductEntity, Integer>>() {};
productsCartMap = objectMapper.readValue(inputStream, tr);
получаю исключение
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot find a (Map) Key deserializer for type [simple type, class ua.itea.model.ProductEntity].
Я извлекал стоку из inputStream. Сервер корректно возвращает json мапы. В интернете я нашел решение, что нужно в приватном поле класса объявить map с аннотацией, что я и сделал.
@JsonDeserialize(keyUsing = MyPairDeserializer.class)
private HashMap<ProductEntity, Integer> productsCartMap;
Также объявил класс MyPairDeserializer.
public class MyPairDeserializer extends KeyDeserializer {
@Override
public Object deserializeKey(String s, DeserializationContext deserializationContext) throws IOException {
return null;//описать, как десериализовать ключ map объект ProductEntity, из входной строки:
}
}
Но дальше не пойму,что в теле метода писать? А может есть и другие способы попроще?