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 4c68825c9..e33243b6b 100644 --- a/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java +++ b/src/main/java/org/springframework/data/redis/hash/Jackson2HashMapper.java @@ -436,8 +436,20 @@ public class Jackson2HashMapper implements HashMapper { } else if (element.isContainerNode()) { doFlatten(propertyPrefix, element.fields(), resultMap); } else { - resultMap.put(propertyPrefix, new DirectFieldAccessFallbackBeanWrapper(element) - .getPropertyValue("_value")); + + switch (element.getNodeType()) { + case STRING -> resultMap.put(propertyPrefix, element.textValue()); + case NUMBER -> resultMap.put(propertyPrefix, element.numberValue()); + case BOOLEAN -> resultMap.put(propertyPrefix, element.booleanValue()); + case BINARY -> { + try { + resultMap.put(propertyPrefix, element.binaryValue()); + } catch (IOException e) { + throw new IllegalStateException(e); + } + } + default -> resultMap.put(propertyPrefix, new DirectFieldAccessFallbackBeanWrapper(element).getPropertyValue("_value")); + } } }