diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java index b1f118d3c..31f3c17a8 100644 --- a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java @@ -612,6 +612,15 @@ public class DefaultStringRedisConnection implements StringRedisConnection { return ret; } + private Map deserialize(Map hashes) { + Map ret = new LinkedHashMap(hashes.size()); + + for (Map.Entry entry : hashes.entrySet()) { + ret.put(serializer.deserialize(entry.getKey()), serializer.deserialize(entry.getValue())); + } + + return ret; + } private List deserialize(List data) { return SerializationUtils.deserialize(data, serializer); @@ -729,7 +738,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection { public Map hGetAll(String key) { - throw new UnsupportedOperationException(); + return deserialize(delegate.hGetAll(serialize(key))); } @@ -751,8 +760,6 @@ public class DefaultStringRedisConnection implements StringRedisConnection { public List hMGet(String key, String... fields) { return deserialize(delegate.hMGet(serialize(key), serializeMulti(fields))); } - - public void hMSet(String key, Map hashes) { delegate.hMSet(serialize(key), serialize(hashes));