# Hibernate hibernate-core-7.4.14.Final.jar == A. Jackson 3 only, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=false jackson3=true jakarta.json=false mapper : org.hibernate.type.format.jackson.Jackson3JsonFormatMapper stored : {"n": 1, "list": ["a", "b"]} ; {"at": 1793355330.000000000, "label": "boot"} read back : {n=1, list=[a, b]} ; Stamp[label=boot, at=2026-10-30T10:15:30Z] == B. Jackson 2 + Jackson 3, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=true jackson3=true jakarta.json=false mapper : org.hibernate.type.format.jackson.JacksonJsonFormatMapper FAILED : com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.Instant` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (or disable `MapperFeature.REQUIRE_HANDLERS_FOR_JAVA8_TIMES`) (through reference chain: com.ankurm.jsoncolumns.FormatMapperProbe$Stamp["at"]) == C. Jackson 2 only, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=true jackson3=false jakarta.json=false mapper : org.hibernate.type.format.jackson.JacksonJsonFormatMapper FAILED : com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.Instant` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (or disable `MapperFeature.REQUIRE_HANDLERS_FOR_JAVA8_TIMES`) (through reference chain: com.ankurm.jsoncolumns.FormatMapperProbe$Stamp["at"]) == D. no Jackson at all, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=false jackson3=false jakarta.json=false FAILED : org.hibernate.HibernateException: Could not find a FormatMapper for the JSON format, which is required for mapping JSON types. JSON FormatMapper configuration is automatic, but requires that you have either Jackson or a JSONB implementation like Yasson on the class path. == E. Jackson 2 + Jackson 3, setting = jackson (Jackson 2) setting : hibernate.type.json_format_mapper = jackson on classpath: jackson2=true jackson3=true jakarta.json=false mapper : org.hibernate.type.format.jackson.JacksonJsonFormatMapper FAILED : com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Java 8 date/time type `java.time.Instant` not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling (or disable `MapperFeature.REQUIRE_HANDLERS_FOR_JAVA8_TIMES`) (through reference chain: com.ankurm.jsoncolumns.FormatMapperProbe$Stamp["at"]) == F. Jackson 3 only, setting = jackson (Jackson 2 absent) setting : hibernate.type.json_format_mapper = jackson on classpath: jackson2=false jackson3=true jakarta.json=false FAILED : java.lang.ClassNotFoundException: com.fasterxml.jackson.core.JsonProcessingException == G. Jackson 2 + Jackson 3, setting = jackson3 setting : hibernate.type.json_format_mapper = jackson3 on classpath: jackson2=true jackson3=true jakarta.json=false mapper : org.hibernate.type.format.jackson.Jackson3JsonFormatMapper stored : {"n": 1, "list": ["a", "b"]} ; {"at": 1793355330.000000000, "label": "boot"} read back : {n=1, list=[a, b]} ; Stamp[label=boot, at=2026-10-30T10:15:30Z] == H. Jackson 2 + jackson-datatype-jsr310, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=true jackson3=false jakarta.json=false mapper : org.hibernate.type.format.jackson.JacksonJsonFormatMapper stored : {"n": 1, "list": ["a", "b"]} ; {"at": 1793355330.000000000, "label": "boot"} read back : {n=1, list=[a, b]} ; Stamp[label=boot, at=2026-10-30T10:15:30Z] == I. Jackson 2 + Jackson 3 + jsr310, setting not set setting : hibernate.type.json_format_mapper = (not set) on classpath: jackson2=true jackson3=true jakarta.json=false mapper : org.hibernate.type.format.jackson.JacksonJsonFormatMapper stored : {"n": 1, "list": ["a", "b"]} ; {"at": 1793355330.000000000, "label": "boot"} read back : {n=1, list=[a, b]} ; Stamp[label=boot, at=2026-10-30T10:15:30Z]