アビシェーク:
私は、クラス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
新しいクラス名を持つオブジェクトをデシリアライズします。動いた。