Como desserializar um objeto armazenado em Redis, se o nome da classe das mudanças de objetos armazenados?

Abhishek:

Tenho guardado um objeto em Redis, dizem Classe StorageConnection,

public void storeSecureConnection(String uniqueKey, Object storageConnection) {
        redisTemplateAdmin.opsForValue().set(uniqueKey, storageConnection);

}

Agora, eu mudei o className de StorageConnection para DataConnection. Todos os campos e UID permanece intacta.

É agora a dar-me um SerializationException em

public DataConnection getAdminDataObject(String uniqueKey) {    
        return  (DataConnection) redisTemplateAdmin.opsForValue().get(uniqueKey);
    }

Existe algum truque que eu posso desserializá-lo com o novo className?

Editar :

Aqui está RedisTemplate Inicialização:

@Service
public class AdminDataBaseServiceImpl{
    private RedisTemplate<String, Object> redisTemplateAdmin;
    private HashOperations hashOps;

    private AdminDataBaseServiceImpl(RedisTemplate<String, Object> redisTemplateAdmin) {
    this.redisTemplateAdmin = redisTemplateAdmin;
    hashOps=redisTemplateAdmin.opsForHash();
}
Abhishek:

I utilizado GenericJackson2JsonRedisSerializerpara serializar o objecto e foi armazenando em redis. Para alterar o nome da classe, eu usei StringRedisSerializerpara desserializar, mudou o nome da classe e novamente armazenados em Redis com StringRedisSerializer.

Em seguida, usado, como de costume, GenericJackson2JsonRedisSerializerpara desserializar o objeto com o novo nome de classe. Funcionou.

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=215254&siteId=1
Recomendado
Clasificación