Class Jackson2HashMapper

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

public class Jackson2HashMapper 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.

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:
1.8
Author:
Christoph Strobl, Mark Paluch, John Blum
  • Constructor Details

    • Jackson2HashMapper

      public Jackson2HashMapper(boolean flatten)
      Creates new Jackson2HashMapper with a default ObjectMapper.
      Parameters:
      flatten - boolean used to configure whether JSON de/serialized Object properties will be un/flattened using dot notation, or whether to retain the hierarchical node structure created by Jackson.
    • Jackson2HashMapper

      public Jackson2HashMapper(com.fasterxml.jackson.databind.ObjectMapper mapper, boolean flatten)
      Creates new Jackson2HashMapper initialized with a custom Jackson ObjectMapper.
      Parameters:
      mapper - Jackson ObjectMapper used to de/serialize hashed objects; must not be null.
      flatten - boolean used to configure whether JSON de/serialized Object properties will be un/flattened using dot notation, or whether to retain the hierarchical node structure created by Jackson.
  • Method Details