Class Jackson3HashMapper

java.lang.Object
org.springframework.data.redis.hash.Jackson3HashMapper
All Implemented Interfaces:
HashMapper<Object,String,Object>

public class Jackson3HashMapper extends Object implements HashMapper<Object,String,Object>
ObjectMapper based HashMapper implementation that allows flattening. Given an entity Person with an Address like below the flattening will create individual hash entries for all nested properties and resolve complex types into simple types, as far as possible.

Creation can be configured using builder() to enable Jackson 2 compatibility mode (when migrating existing data from Jackson 2) or to attach a custom MapperBuilder configurer.

By default, JSON mapping uses default typing. Make sure to configure an appropriate PolymorphicTypeValidator to prevent instantiation of unwanted types.

Flattening requires all property names to not interfere with JSON paths. Using dots or brackets in map keys or as property names is not supported using flattening. The resulting hash cannot be mapped back into an Object.

Example

 class Person {
        String firstname;
        String lastname;
        Address address;
        Date date;
        LocalDateTime localDateTime;
 }

 class Address {
        String city;
        String country;
 }
 

Normal

Hash field Value
firstname Jon
lastname Snow
address { "city" : "Castle Black", "country" : "The North" }
date 1561543964015
localDateTime 2018-01-02T12:13:14

Flat

Hash field Value
firstname Jon
lastname Snow
address.city Castle Black
address.country The North
date 1561543964015
localDateTime 2018-01-02T12:13:14
Since:
4.0
Author:
Christoph Strobl, Mark Paluch