格納されたオブジェクトのクラス名が変更された場合、Redisの中に格納されているオブジェクトをデシリアライズする方法?

アビシェーク:

私は、クラスStorageConnectionを言う、のRedisにオブジェクトを格納しています

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

}

今、私はのdataconnectionにStorageConnectionからクラス名を変更しました。すべてのフィールドとUIDはそのまま残ります。

それは今私のSerializationExceptionを与えています

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

私は新しいクラス名とそれをデシリアライズできることを任意のトリックはありますか?

編集

ここRedisTemplate初期化です:

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

    private AdminDataBaseServiceImpl(RedisTemplate<String, Object> redisTemplateAdmin) {
    this.redisTemplateAdmin = redisTemplateAdmin;
    hashOps=redisTemplateAdmin.opsForHash();
}
アビシェーク:

私が使用しGenericJackson2JsonRedisSerializerたオブジェクトをシリアル化すると、Redisの中に保管されました。クラス名を変更するには、私が使用しStringRedisSerializer、デシリアライズするクラス名を変更して再度でのRedisに保存されていますStringRedisSerializer

その後、いつものように、使用するGenericJackson2JsonRedisSerializer新しいクラス名を持つオブジェクトをデシリアライズします。動いた。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=215255&siteId=1