Reputation: 833
I'm creating a new Redis key (and content) with the following code:
private static final String KEY_ESTADOS = "estados";
private HashOperations<String, String, Object> hashOperations;
public void add(final Estado estado) {
hashOperations.put(KEY_ESTADOS, estado.getSigla(), estado);
}
Instead of create a key "estados" on Redis, it's creating a key name ""\xac\xed\x00\x05t\x00\aestados"
The key content is also with strange characters:
Anybody knows how to fix this?
The Estados class implements Serializable but I would like save it's content in pure json so I could change HashOperations to instead of . What do you recommend to serialize to json and deserialize it back to object?
Thanks
Upvotes: 14
Views: 7129
Reputation: 158
I had the same issue while using Socket and I fixed it due replacing ObjectOutputStream
with OutputStream
. Maybe that helps.
Upvotes: 0
Reputation: 833
To solve the problem about the redis key, hash key and content value I had to add the following lines on RedisTemplate method:
template.setKeySerializer(new StringRedisSerializer());
template.setHashKeySerializer(new StringRedisSerializer());
template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
Upvotes: 13
Reputation: 116
Add GenericJackson2JsonRedisSerializer to convert to json and set valueSerializer. This blog post may help you
Upvotes: -3