== what the 2018-2022 recipes rely on, checked against Hibernate 7.4.14.Final org.hibernate.annotations.TypeDef present? false org.hibernate.annotations.TypeDefs present? false org.hibernate.annotations.Type attributes: [parameters, value] == jars on the test classpath that mention jackson or hypersistence hypersistence-tsid-2.1.4.jar hypersistence-utils-hibernate-73-3.16.0.jar jackson-annotations-2.21.jar jackson-core-2.21.7.jar jackson-core-3.1.7.jar jackson-databind-2.22.4.jar jackson-databind-3.1.7.jar spring-boot-jackson-4.1.2.jar spring-boot-starter-jackson-4.1.2.jar == FormatMapper Hibernate picked with hypersistence-utils on the classpath getJsonFormatMapper() -> org.hibernate.type.format.jackson.JacksonJsonFormatMapper == @Type(JsonType.class) @Column(columnDefinition = "jsonb") on Hibernate 7.4.14 stored: jsonb {"k": "v", "n": 1} in-place Map.put -> 1 UPDATE; stored: {"k": "changed", "n": 1} == the built-in mapping on the same classpath: Product (Map, List, record, POJO) round trip round trip OK: Dimensions[widthMm=1, heightMm=2, depthMm=3] m