Запись в базу реализуется через Redisson. Всё это помечено следующим образом:
User.classpublic class User implements Serializable {
private static final long serialVersionUID = -960024560523175889L;
@JsonProperty("1")
public String id;
@JsonProperty("2")
public long lastRequest = 0L;
@JsonProperty("3")
public String lastRequestDate = "";
// public long lastCookieMatching = 0L;
@JsonProperty("4")
public HashMap<String, Long> cookieMatchingTimes = new HashMap<>();
@JsonProperty("5")
private boolean needToSave = false;
@JsonProperty("6")
private HashMap<String, Integer> dailyActions = new HashMap<>();
В базе лежит в таком виде:
1) "\"ud_81c277fbc5f228ee221576e0558d6ffe\""
2) "\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x00\x00\x00\x00\x00\x00\x00{\"@class\":\"
delivery.containers.User\",\"1\":\"81c277fbc5f228ee221576e0558d6ffe\",\"2\":0,\"3\":\"2018-09-19\",\"4\":{\"@class\":\"java.util.HashMap\"},\"5\":false,\"6\":{\"@class\":\"java.util.HashMap\"}}"
Проблема заключается в том, что теперь, если я запускаю вторую версию проекта, где пакет для User переместился, то уже не получается десериализовать его. Ошибка:
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property '@class' that is to contain type id (for class java.lang.Object)
Кодек для конфига Redisson использую - MsgPackJacksonCodec.
Пробовал ещё маркировать класс аля такого, но результат не дало совсем:
@JsonTypeInfo(use = Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes.Type(value = User.class, name = ".User")
public class User implements Serializable {