Version 3.11.0 - September 09, 2025
================================================================================

Add support for Hibernate 7.1 #802

ObjectMapperWrapper not working with Map<String, String> #793

Version 3.10.3 - July 11, 2025
================================================================================

Add support for @Tsid generation on non-id entity attributes #794

Version 3.10.2 - July 05, 2025
================================================================================

Add support for addScalar in the Hibernate 7 module #792

Version 3.10.1 - June 14, 2025
================================================================================

Update description in pom.xml to mention support of Hibernate 6.6 #790

Remove the central-publishing-maven-plugin dependency #789

Version 3.10.0 - June 09, 2025
================================================================================

Add support for Hibernate 7 #784

Version 3.9.11 - June 07, 2025
================================================================================

Allow the PostgreSQLRangeType to work in AOT mode #787

Version 3.9.10 - April 27, 2025
================================================================================

ObjectMapperJsonSerializer throws StackOverflowError when using Map<String,String[]> #780

Version 3.9.9 - March 31, 2025
================================================================================

The ObjectMapperWrapper.fromBytes cannot instantiate an AbstractCollection #773

Version 3.9.8 - March 28, 2025
================================================================================

JsonType parameter binding doesn't work for POJO parameter #777

JsonType parameter binding doesn't work for List parameter #775

Version 3.9.7 - March 28, 2025
================================================================================

Allow the JsonType to infer the binding parameter type from the propertyClass in JsonJavaTypeDescriptor #774

Version 3.9.6 - March 28, 2025
================================================================================

JsonType parameter binding doesn't work for Map parameter #772

Remove hypersistence-utils-hibernate-55 module #771

Version 3.9.5 - March 12, 2025
================================================================================

Remove hypersistence-utils-hibernate-62 module #770

Remove hypersistence-utils-hibernate-60 module #769

Validate the enable_types_contributor setting to allow only boolean values #695

Version 3.9.4 - March 11, 2025
================================================================================

Polymorphic collections that use elements of different types are not fetched properly #767

Version 3.9.3 - March 07, 2025
================================================================================

Add second precision support in time zone offsets for the Range type #766

BatchSequenceGenerator throws "no sequence name specified" in Spring Boot #763

Support for java.lang.Short in Hibernate ListArrayType #758

Version 3.9.2 - February 13, 2025
================================================================================

Upgrade TSID library to 2.1.4 #765

Version 3.9.1 - February 03, 2025
================================================================================

Allow the Iso8601MonthType to persist data into tinyint and smallint columns #762

The JavaDoc of MutableType class mentions immutable object types #751

Version 3.9.0 - November 10, 2024
================================================================================

Remove PostgreSQLIntervalType from HibernateTypesContributor #750

Add support for SortedSet in ListArrayType #749

Allow PostgreSQLCITextType entity attributes to be used in the LIKE query clause #743

Add support for GraalVM native image #740

Version 3.8.3 - September 30, 2024
================================================================================

Fix Hibernate 6.6 JSON mapping on Oracle BLOB column type #742

Version 3.8.2 - July 25, 2024
================================================================================

Add JsonClobType and improve JsonType to support CLOB column types #734

Version 3.8.1 - July 03, 2024
================================================================================

Enhance BatchSequenceGenerator with support for IdGeneratorType #728

Version 3.8.0 - June 27, 2024
================================================================================

Add support for mapping Java Enums to custom ordinal values #730

Version 3.7.7 - June 21, 2024
================================================================================

Remove hypersistence-utils-hibernate-52 module #726

MonetaryAmountType should use currency instead of property for the second attribute #707

Version 3.7.6 - June 04, 2024
================================================================================

Use Spring Data Range as an alternative to PostgreSQL range type #721

ListArrayType on Set entity attribute fails for EntityManager.merge operation #717

Version 3.7.5 - April 29, 2024
================================================================================

NullableCharacterType prevents Hibernate from escaping backslash properly #715

Version 3.7.4 - April 18, 2024
================================================================================

Make the JsonTypeDescriptor thread-safe #713

Equals method not found on abstract class #709

Version 3.7.3 - February 16, 2024
================================================================================

"java.lang.ClassCastException: class [Ljava.lang.String; cannot be cast to class [B" thrown when using multiLoad with Hibernate 6.4 #700

Version 3.7.2 - February 08, 2024
================================================================================

Expecting BasicPluralJavaType for array class [Ljava.util.UUID;,
but got `com.vladmihalcea.hibernate.type.array.internal.UUIDArrayTypeDescriptor error with Hibernate 6.4 #698

Version 3.7.1 - January 30, 2024
================================================================================

Add support for Hibernate 6.4 #685

Remove hypersistence-utils-hibernate-5 module #693

Version 3.7.0 - December 18, 2023
================================================================================

Oracle Interval Type does not support negative intervals #682

Return original object if target and original are the same when merging #677

Add a hypersistence-utils-hibernate-63 module for Hibernate 6.3 #657

Version 3.6.1 - November 11, 2023
================================================================================

Export the testing mechanism #676

Version 3.6.0 - October 12, 2023
================================================================================

Implement QueryStackTraceLogger using StackWalker #659

Add JFR based query logger #658

Adds support for using MonetaryAmount in @ElementCollection #652

Version 3.5.3 - September 19, 2023
================================================================================

Add QueryStackTraceLogger that allows you to locate the source of an SQL query executed by Hibernate #653

Version 3.5.2 - August 25, 2023
================================================================================

ListArrayTypeDescriptor should use Collection as the underlying JavaType #650

Version 3.5.1 - June 26, 2023
================================================================================

The ESCAPE literal in the LIKE clause is not escaped and caused an "syntax error at end of input" error #638

Version 3.5.0 - June 19, 2023
================================================================================

Make HibernateTypesContributor configurable so that we can enable or disable the automatic Type registration #623

Version 3.4.4 - June 16, 2023
================================================================================

Implement EnhancedUserType in a new DescriptorImmutableType in Hibernate 6 modules #633

Version 3.4.3 - June 12, 2023
================================================================================

PostgreSQLEnumType error "Could not set value of type" with Hibernate 6 and Quarkus Panache #634

Version 3.4.2 - May 30, 2023
================================================================================

Remove PostgreSQLEnumType from HibernateTypesContributor in Hibernate 6 modules #631

Version 3.4.1 - May 28, 2023
================================================================================

SQLExtractor returns JPQL instead of SQL #629

PostgreSQLPeriodType refers to Duration in Javadoc #586

Version 3.4.0 - May 27, 2023
================================================================================

PostgreSQLEnumType returnedClass should be the Enum-specific class #627

'empty' period causes NullPointerException in Range<ZonedDateTime> #622

BatchSequenceGenerator should use PostgreSQL generate_series to speed up ID generation #614

BatchSequenceGenerator should be able to search the DB sequence in the default schema #613

BatchSequenceGenerator should be able to search the DB sequence in the default schema #611

Add a FloatArrayType to map float[] as JPA entity properties #606

Expose Range utility methods #594

Version 3.3.2 - April 16, 2023
================================================================================

Add support for configuring the Json Types using HBM files #610

Version 3.3.1 - April 01, 2023
================================================================================

Adapt the Hibernate 6.2 module to the new Type and BasicPluralJavaType changes #602

Version 3.3.0 - March 26, 2023
================================================================================

Add support for Hibernate 6.2 #597

Rename peristAllAndFlush to persistAllAndFlush HibernateRepository #593

Add @Transactional annotation to BaseJpaRepository methods #584

Starting app fails if Jackson is not present on the classpath #559

Add support for PostgreSQL ltree column type #543

Version 3.2.0 - February 16, 2023
================================================================================

The Range Javadoc mentions Point instead of Range documentation #579

Change signature of toString and areEqual methods in AbstractArrayTypeDescriptor to match those of its superclass #569

ListArrayTypeDescriptor doesn't support Spring JPA Projections #562

Add support for TSID #526

Version 3.1.2 - February 07, 2023
================================================================================

Change the RetryAspect log levels #570

JsonNodeBinaryType cannot bind a JsonNode parameter value #554

Version 3.1.1 - January 13, 2023
================================================================================

Infinite recursion in getByReferenceId #552

Version 3.1.0 - January 11, 2023
================================================================================

Add support for SQLStatementCountValidator #539

Add support for Retry annotation #537

Add the setObjectMapper method to the ObjectMapperWrapper class #304

Version 3.0.1 - December 28, 2022
================================================================================

Cannot invoke "JsonSerializer.clone(Object)" because "this.jsonSerializer" is null #538

Deprecate the hibernate-types configurations #535

Version 3.0.0 - December 27, 2022
================================================================================

Rename project to Hypersistence Utils #534

Version 2.21.1 - December 24, 2022
================================================================================

ObjectMapperWrapper throws NullPointerException when referencing the ObjectMapper #533

Version 2.21.0 - December 18, 2022
================================================================================

Add support for Hibernate ORM 6.1 #531

Avoid creating too many Jackson ObjectMapper instances #530

Add lockById function to the BaseHibernateRepository #529

ObjectMapperJsonSerializer should not clone a String JSON Object #528

Hibernate Types 6 throws ClassCastException "CustomType cannot be cast to class EntityValuedModelPart" #520

Add DistinctListTransformer to Hibernate Types 6 #517

JsonTypeDescriptor throws NullPointerException when using a Kotlin var entity attribute #516

HibernateRepository doesn't work with multiple DataSources #513

Empty ranges cannot be converted back to their initial String representation #507

HibernateTypesContributor throws java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/JsonSerializer #504

Add the BaseJpaRepository as a better alternative to Spring Data JpaRepository #501

Version 2.20.0 - October 17, 2022
================================================================================

Add support for querying by the embedded MonetaryAmount attributes #497

Allow the ListArrayType to support Set entity attributes #496

JsonTypeDescriptor should use Objects.equals for both Collections and Maps #494

Add support for the PostgreSQL 'empty' range that's distinct from the (,) infinite range #492

Version 2.19.2 - September 12, 2022
================================================================================

Add Javadoc comments for the HibernateRepository methods #484

Version 2.19.1 - September 10, 2022
================================================================================

The findAll method from the JpaRepository is an Anti-Pattern and the HibernateRepository should deprecate it #483

Version 2.19.0 - September 05, 2022
================================================================================

Generify the Comparable type in the Range class #478

Add support for GraalVM native images #343

Version 2.18.0 - August 15, 2022
================================================================================

Reuse the DB containers bootstrapped by Testcontainers #477

Add support for Testcontainers #476

Add support for the JavaMoney (JSR 354) CurrencyUnit #473

Version 2.17.3 - August 03, 2022
================================================================================

HibernateTypesContributor throws java.lang.NoClassDefFoundError: javax/money/MonetaryAmount #468

Version 2.17.2 - August 03, 2022
================================================================================

MonetaryAmountType throws NullPointerException when reading a null column value #465

Envers throws MappingException: Type not supported for auditing #463

Version 2.17.1 - July 26, 2022
================================================================================

Make all jackson-module-jaxb-annotations optional #462

Spring Boot 3 throws NoClassDefFoundError - javax/xml/bind/annotation/XmlElement #459

Allow OffsetDateTime to be parsed from a Double value  #457

Version 2.17.0 - July 21, 2022
================================================================================

Avoid the double registration of DoubleArrayType in HibernateTypesContributor for PostgreSQL82Dialect #453

Update Guava version to version 31.1 #451

Add support for JavaMoney (JSR 354) with the MonetaryAmountType #450

Add the amazing HibernateRepository #444

Version 2.16.3 - June 27, 2022
================================================================================

Update Readme to include information regarding building the project #447

Add PostgreSQLCITextType to TypeContributor #445

HibernateTypesContributor does not register Types on Hibernate 5 and 4 for Oracle, SQL Server, and PostgreSQL #441

Make the Configuration objects Serializable #438

Version 2.16.2 - May 03, 2022
================================================================================

Make the Hibernate 6 Ehcache dependency optional #433

Version 2.16.1 - April 16, 2022
================================================================================

Fix the batch sequence generation for the 2.x version of H2 #428

Remove warning generated on startup "Type [org.hibernate.type.CustomType@6142b9dd] defined no registration keys; ignoring" #427

Version 2.16.0 - April 12, 2022
================================================================================

Add support for customizing the JsonType underlying Oracle column type #424

Change JsonBinarySqlTypeDescriptor to bind the JSON object as String #423

Add support for Oracle 21c JSON columns #422

Version 2.15.2 - April 10, 2022
================================================================================

Register the PostgreSQLGuavaRangeType only if Guava Range is available on the classpath #421

Version 2.15.1 - April 07, 2022
================================================================================

Rename the Hibernate 6 Dynamic mutable and immutable abstract types #419

Add support for Hibernate 5.6 in BatchSequenceGenerator #417

Version 2.15.0 - April 06, 2022
================================================================================

Add support for Hibernate 6 #401

Support for Jakarta EE 9 #380

Create a TypeContributor that registers all supported types #166

Version 2.14.1 - March 23, 2022
================================================================================

Add support for using OffsetDateTime in JSON objects #408

Add support for LocalDateTime[] mappings #407

Add support for LocalDate[] mappings #406

PostgreSQLEnumType#sqlTypes() should always return Types.VARCHAR #399

Version 2.14.0 - October 24, 2021
================================================================================

Move SQLExtractor to the query package #359

Move the type/util classes that are not associated to types to the generic util package #358

Move the ResultTransformer implementations to the query package #357

Move CamelCaseToSnakeCaseNamingStrategy to the naming package #356

Add BatchSequenceGenerator #354

Version 2.13.0 - October 09, 2021
================================================================================

Avoid the unnecessary UPDATE for JsonNode entity mappings #348

Parse application.properties and load properties upon initialization #344

Version 2.12.1 - July 10, 2021
================================================================================

Add support for half-hour time zones in ZonedDateTime #329

Version 2.12.0 - June 14, 2021
================================================================================

Add hibernate-type-55 module #324

Prevent NullPointerException caused by sqlArrayType in the ListArrayTypeDescriptor #320

Version 2.11.1 - May 11, 2021
================================================================================

Add support for using the generic JsonType even when passing it via addScalar #317

Version 2.11.0 - May 10, 2021
================================================================================

Add generic JsonType that auto-resolves the SqlTypeDescriptor #174

Version 2.10.4 - March 24, 2021
================================================================================

Add fractional support to PostgreSQLIntervalType #307

Use the provided delimiter parameter in the StringUtils.join method #302

Version 2.10.3 - February 25, 2021
================================================================================

ReflectionUtils.getGenericTypes throws ClassCastException when using Kotlin Enums #300

False positive "class should override both the equals and hashCode methods" for Enum values #295

Version 2.10.2 - January 05, 2021
================================================================================

Support PostgreSQL empty & inf range and OffsetDateTime for Guava ranges #287

Version 2.10.1 - December 08, 2020
================================================================================

Log a WARN message if the JSON object does not implement equals and hashCode #281

Convert parsing or processing errors to HibernateException #280

The NotSerializableException is thrown when mapping a Map<String, List<>> entity attribute to a JSON column #243

Add MySQL BinaryType #23

Version 2.10.0 - October 07, 2020
================================================================================

Add support for mapping BigDecimal arrays #272

Add sub-second precision for Range<LocalDateTime> #267

Add MonthDayType to map a java.time.MonthDay to either a DATE or an INTEGER column type #262

YearMonthTypeDescriptor failed to wrap null value from database in use case of YearMonthIntegerType #113

Version 2.9.13 - July 28, 2020
================================================================================

Add support for mapping Java boolean[] arrays or List<Boolean> on PostgreSQL boolean[] array column types #167

Version 2.9.12 - June 19, 2020
================================================================================

Add jackson-module-jaxb-annotations dependency #247

Guava range mapping does not support infinite bounds #244

Allow JSON Types to handle parameterized entity attribute type variables #237

Version 2.9.11 - June 02, 2020
================================================================================

Add SQLExtractor utility #241

A ClassNotFoundException is thrown when using an Enum List or Array in Kotlin #238

Version 2.9.10 - May 15, 2020
================================================================================

Allow the ClassImportIntegrator to include a relative path when registering DTO aliases #231

ObjectMapperJsonSerializer#clone throws NullPointerException if the Map key or value are null #227

Version 2.9.9 - April 26, 2020
================================================================================

Allow the custom ObjectMapper be used for JSON serialization #220

Allow ArrayType to work on HSQLDB #219

Expose the Hibernate Type for Range elements #215

Make AbstractArrayTypeDescriptor#getArrayObjectClass public #214

Version 2.9.8 - April 09, 2020
================================================================================

Add support for PostgreSQL "infinity" String values #211

Add support for saving null JSON objects when using the JsonStringType #210

Add support for "empty" String values when mapping PostgreSQL range column types #209

Version 2.9.7 - March 23, 2020
================================================================================

Add support for checking if the bounds are open or closed for a given Range #204

Row is always updated when using JSON objects wrapped in POJOs with no explicit equals method duplicate #203

Allow all ArrayType objects to be used in the addScalar Hibernate Query method #190

Version 2.9.6 - March 21, 2020
================================================================================

Use byte arrays when cloning JSON objects #198

Add Iso8601MonthType to save the 1-based value instead of the 0-based Enum ordinal for a java.time.Month entity attribute #56

Version 2.9.5 - March 07, 2020
================================================================================

Switch to using a single Logger instance #197

Version 2.9.4 - February 26, 2020
================================================================================

A NullPointerException is thrown when adding a ListArrayType definition to a MappedSuperClass #189

The ListArrayTypeDescriptor deepCopy method should not convert a List to an Java array #187

Add support for double arrays #183

Improve logging of array parameters in BasicBinder #182

ListArrayType generates an extra UPDATE when persisting an entity #180

Version 2.9.3 - January 26, 2020
================================================================================

PostgreSQLEnumType is not compatible with Hibernate 5.2 because of JavaTypeDescriptorRegistry and TypeConfiguration #176

Unexpected Hibernate dirty checking when using Sets #175

GraalVM / Quarkus native build support #173

When fetching an entity from the second-level cache, ListArrayType throws UnsupportedOperationException #169

Version 2.9.2 - January 14, 2020
================================================================================

Multidimensional Enum arrays are wrapped to String arrays and a ClassCastException is thrown #168

Version 2.9.1 - January 14, 2020
================================================================================

When fetching a List backed by a NULL PostgreSQL array, a NPE is thrown #164

Version 2.9.0 - January 06, 2020
================================================================================

Add support for MapResultTransformer and ListResultTransformer #163

Empty multi-dimensional arrays throw ClassCastException #161

Add support for mapping java.util.Date ARRAY or List to PostgreSQL DATE[] and TIMESTAMP[] #150

Add support for mapping ARRAY to a java.util.List #97

Version 2.8.0 - December 08, 2019
================================================================================

ObjectMapperJsonSerializer should inspect the inner Collection element type #158

Upgrade Jackson Databind library to 2.9.10.1 #157

Add support for ClassImportIntegrator for compact DTOs #151

NPE thrown by AbstractArrayTypeDescriptor#setParameterValues when creating a PostgreSQL ARRAY #142

Add support for PostgreSQL tx_vector column type #116

Version 2.7.1 - October 10, 2019
================================================================================

Unexpected dirty checking behavior on collections of POJOs mapped with JsonBinaryType #138

Mapping Enum to a String column uses toString() instead of name() #135

Upgrade Jackson Databind library version to 2.9.10 #134

Add support for passing the mapping Class to Json Types #133

Version 2.7.0 - September 14, 2019
================================================================================

Add support for JSON column values for Oracle #131

Add support for mapping a Guava Range object to a PostgreSQL range type #129

Add support for mapping the Java Period object to a PostgreSQL interval type #128

Add YearMonthTimestampType #127

Ability to use PostgreSQLEnumType and EnumArrayType with TypedParameterValue #125

Version 2.6.1 - August 29, 2019
================================================================================

Add support for Oracle Interval Day to Second column type #123

Version 2.6.0 - August 23, 2019
================================================================================

ImmutableType should also implement the Type interface #119

Remove unnecessary null checks and PGobject instantiations #118

Add support for the PostgreSQL citext type #117

Version 2.5.1 - August 15, 2019
================================================================================

Add support for PostgreSQL Interval column type #53

Add missing type INSTANCE constants #111

Upgrade Jackson Databind artifact version

Version 2.5.0 - July 05, 2019
================================================================================

Allow the Configuration to be accessed by all custom Types #107

Add handling for null PostgreSQL Range column values #106

Add PostgreSQL UUID ARRAY support #105

Version 2.4.4 - June 06, 2019
================================================================================

Update Javadoc to specify which JSON types are suitable for PostgreSQL and MySQL.

Add ZoneIdType to map the java.time.ZoneId to a VARCHAR-based column #103

In case the JSON attribute is a java.util.Set, an additional SQL UPDATE is executed when persisting the entity #100

Replace reflection usage in PostgreSQL Types with Driver-specific API calls #99

Version 2.4.3 - April 07, 2019
================================================================================

Adjustment in ZoneDateTime pattern for 1-6 nanoseconds digits #90

Array types use a singleton Java descriptors and that prevents them from being
initialized separately using dynamic parameters #84

Version 2.4.2 - February 26, 2019
================================================================================

Add a LongArrayType to support long[] array mappings #82

Version 2.4.1 - February 01, 2019
================================================================================

Change constructor type args from Class to Type for JSON Types so it's easier to register them dynamically

Support insertion of String values into JSON columns #80

Fix issue with ZonedDateTimeRanges and DST #78

Version 2.4.0 - January 02, 2019
================================================================================

Add support for PostgreSQL range type #63

Add support for the PostgreSQL hstore type #44

Version 2.3.5 - December 03, 2018
================================================================================

Add EnumArrayType to support mapping database Enums as Java arrays #58

Version 2.3.4 - November 14, 2018
================================================================================

Add CamelCaseToSnakeCaseNamingStrategy so that we can automatically map the cameCase JPA properties
to snake_case database identifiers.

Version 2.3.3 - October 23, 2018
================================================================================

Add types for java.time.Year and java.time.Month #51

Add continuous Integer solution for YearMonthType #47

Version 2.3.2 - October 18, 2018
================================================================================

Add the Java 9 automatic module name to the MANIFEST file.

Migrate hibernate-types-52 to Jackson 2.9.7.

Version 2.3.1 - October 16, 2018
================================================================================

Add support for the java.util.YearMonth which can be persisted as a DATE or INTEGER column

Version 2.3.0 - September 06, 2018
================================================================================

Add InetType for PostgreSQL #43

Version 2.2.3 - September 06, 2018
================================================================================

String fields on entity as JSONB don't work correctly #39

Version 2.2.2 - June 03, 2018
================================================================================

Allow the JSON to be extracted either via the ResultSet#getObject or ResultSet#getString based on the underlying SQL type descriptor.

Version 2.2.1 - May 12, 2018
================================================================================

Pass the original IOException when throwing the IllegalArgumentException from ObjectMapperWrapper#readValue and ObjectMapperWrapper#writeValueAsString.

Version 2.2.0 - March 27, 2018
================================================================================

Fix issue which allows you to customize the deep copy mechanism via the JsonSerializer interface supplied by the hibernate.types.json.serializer configuration property #21

Version 2.1.1 - March 08, 2018
================================================================================

Allows using the ObjectMapperWrapper in JSON types and pass a custom ObjectMapper via the hibernate.types.jackson.object.mapper configuration property.

Refactor internal PropertyLoader to Configuration and make it work with hibernate.properties as well.

Version 2.1.0 - March 07, 2018
================================================================================

Add support to provide an external ObjectMapper #3

Add the cause to the IllegalArgumentException thrown by JacksonUtil.

Version 2.0.0 - February 02, 2018
================================================================================

Refactor support for List, Set, Map to be saved as JSON using a simplified mechanism which no longer requires the TypeReferenceJsonStringSerializer. For this reason, this version breaks backward compatibility.

Optimize String equality checks in JsonTypeDescriptor.

Migrate hibernate-types-52 to Jackson 2.9.0.

Version 1.2.0 - November 28, 2017
================================================================================

Serialization problem when using JsonNodeBinaryType and Hibernate 2nd-level cache #14

Add support for List, Set, Map to be saved as JSON #11

Version 1.1.2 - November 11, 2017
================================================================================

JacksonUtil#clone should support Lists as well #8

Add an INSTANCE constant to existing Types.

Version 1.1.1 - October 26, 2017
================================================================================

Update JavaDocs to reference documentation.

Version 1.1.0 - October 26, 2017
================================================================================

Add support for PostgreSQL Enum Type.

Use ObjectMapper#findAndRegisterModules() for the default ObjectMapper.

Version 1.0.0 - September 25, 2017
================================================================================

Initial release which adds the JSON, Array, Nullable Character and ImmutableType support.
