diff --git a/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java b/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java
index 97f637aa3..84ea4414b 100644
--- a/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java
+++ b/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java
@@ -16,7 +16,9 @@
package org.springframework.data.redis.hash;
import java.io.IOException;
+import java.text.ParseException;
import java.util.ArrayList;
+import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
@@ -29,15 +31,28 @@ import java.util.Set;
import org.springframework.data.mapping.MappingException;
import org.springframework.data.util.DirectFieldAccessFallbackBeanWrapper;
import org.springframework.util.Assert;
+import org.springframework.util.NumberUtils;
import org.springframework.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.BeanDescription;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.ObjectMapper.DefaultTyping;
import com.fasterxml.jackson.databind.SerializationFeature;
+import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
+import com.fasterxml.jackson.databind.deser.DeserializationProblemHandler;
+import com.fasterxml.jackson.databind.deser.std.UntypedObjectDeserializer;
+import com.fasterxml.jackson.databind.jsontype.TypeIdResolver;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+import com.fasterxml.jackson.databind.type.TypeFactory;
/**
* {@link ObjectMapper} based {@link HashMapper} implementation that allows flattening. Given an entity {@code Person}
@@ -65,19 +80,56 @@ import com.fasterxml.jackson.databind.SerializationFeature;
*
* Normal
*
- * | Hash field | Value | |
- * | firstname | Jon | |
- * | lastname | Snow | |
- * | address | { "city" : "Castle Black", "country" : "The North" } | |
+ *
+ * | Hash field |
+ * Value
+ * |
+ * |
+ *
+ * | firstname |
+ * Jon
+ * |
+ * |
+ *
+ * | lastname |
+ * Snow
+ * |
+ * |
+ *
+ * | address |
+ * { "city" : "Castle Black", "country" : "The North" }
+ * |
+ * |
*
*
* Flat:
*
- * | Hash field | Value | |
- * | firstname | Jon | |
- * | lastname | Snow | |
- * | address.city | Castle Black | |
- * | address.country | The North | |
+ *
+ * | Hash field |
+ * Value
+ * |
+ * |
+ *
+ *
+ * | firstname |
+ * Jon
+ * |
+ * |
+ *
+ * | lastname |
+ * Snow
+ * |
+ * |
+ *
+ * | address.city |
+ * Castle Black
+ * |
+ * |
+ *
+ * | address.country |
+ * The North
+ * |
+ * |
*
*
* @author Christoph Strobl
@@ -103,6 +155,50 @@ public class Jackson2HashMapper implements HashMapper