# 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]

