Hibernate 6 Changelog
=======================

Note: Please refer to JIRA to learn more about each issue.

Changes in 6.0.0.Beta3 (December 18, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/32004

** Bug
    * [HHH-14972] - log4j2 <= 2.14.1 has an RCE (CVE-2021-44228)
    * [HHH-14948] - Metamodel imports cache increases indefinitely for dynamically generated HQL aliases eventually leading to an OOM
    * [HHH-14934] - java.lang.IllegalStateException: SqmJpaCriteriaParameterWrapper references for JpaCriteriaParameter already exhausted
    * [HHH-14933] - Unable to set the original Selection back in CriteriaQuery
    * [HHH-14922] - Inconsistent precedence of orm.xml implicit catalog/schema over "default_catalog"/"default_schema"
    * [HHH-14280] - VirtualEntitySingleIdMapper throws a NullPointerException when the composite identifier contains a not audited entity (using @IdClass)
    * [HHH-14211] - @Lob String mapping broken
    * [HHH-11435] - Alias available in WITH clause although not defined yet and generates invalid SQL
    * [HHH-9432] - SQL syntax failure when collection uses @Where annotation on audit join table.

** Improvement
    * [HHH-14977] - @Where is broken in 6.0
    * [HHH-14949] - Support @Access on @ElementCollection (for embeddable elements)
    * [HHH-14921] - Definition of the default catalog/schema on session factory creation
    * [HHH-13393] - Add support for ZoneId and ZoneOffset
    * [HHH-13082] - Support specifying an AttributeConverter class as a @ColumnResult#type
    * [HHH-11896] - Support specification of 'on-clause' criterias when traversing relations in audit query API
    * [HHH-11895] - Support traversal of components in audit queries
    * [HHH-11735] - Support traversal of to-many associations in audit queries
    * [HHH-11573] - No entity type expressions can be used in the Envers Query API
    * [HHH-11452] - No scalar functions can be used in the Envers Query API
    * [HHH-10558] - Add support for java.time.Year

** New Feature
    * [HHH-14981] - Support null precedence with Envers Query API
    * [HHH-13817] - Envers: Please support nested criteria in revisionsOfEntity queries
    * [HHH-8051] - targetAuditMode=RelationTargetAuditMode.NOT_AUDITED should allow for missing entity targets

** Sub-task
    * [HHH-14960] - Add @IdGeneratorType for better custom generator config
    * [HHH-14718] - Drop deprecated generator implementations

** Task
    * [HHH-14988] - Upgrade to ByteBuddy 1.12.5
    * [HHH-14979] - Upgrade to Log4J 2 2.16.0


Changes in 6.0.0.Beta2 (December 02, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31969

** Bug
    * [HHH-14914] - Passing an ExtendedBeanManager which is never notified leads to runtime errors
    * [HHH-14913] - sub-query modifiers are ignored
    * [HHH-14877] - FetchMode.SUBSELECT ignored
    * [HHH-14876] - Parameter padding for IN clauses doesn't work in Hibernate 6.0.0.Beta1
    * [HHH-14875] - Slow query log seems to be missing in Hibernate 6.0.0.Beta1
    * [HHH-14874] - Lazy loading of basic attributes in different @LazyGroups throws ArrayIndexOutOfBoundsException
    * [HHH-9862] - Multiple TREAT operators does not work properly for joined inheritance
    * [HHH-9229] - @Audited and @AuditOverride does not work consistently for embeddables that extend a mapped superclass
    * [HHH-9228] - @AuditOverride has no affect if an embeddable is @Audited

** Deprecation
    * [HHH-11469] - Remove ModificationStore 

** Improvement
    * [HHH-14928] - Document CDI integration
    * [HHH-14925] - Switch from BasicType to JavaType/JdbcType for Geometry types
    * [HHH-14836] - Provide `ExtensionTypes` class to hold the non-standard type codes
    * [HHH-14803] - Upgrade spatial support for MariaDB
    * [HHH-14802] - Upgrade spatial support for CockroachDB
    * [HHH-14801] - Upgrade spatial support for Postgis
    * [HHH-14800] - Remove need for SpatialDialects
    * [HHH-14738] - Update tests for hibernate-spatial to junit5 
    * [HHH-14403] - Walk Fetchables for a container width-first rather than depth-first
    * [HHH-12077] - Support short-naming of audit strategies via configuration.
    * [HHH-11483] - Build models based on JAXB rather than using Dom4J
    * [HHH-10496] - Allow RevisionTimestamp to be of type java.time.LocalDateTime

** New Feature
    * [HHH-14906] - Support H2GIS in Spatial
    * [HHH-14663] - Add testing for s390x to Jenkins CI
    * [HHH-14576] - Support TiDB
    * [HHH-10925] - Add annotation to ignore specific tests based on audit strategy being used.
    * [HHH-9062] - Validity audit strategy: end revision timestamp is not stored in tables for joined subclasses
    * [HHH-6210] - ValidityAuditStrategy doesn't support a numeric column for the revision end timestamp
    * [HHH-5529] - Bulk delete on Entity with @ElementCollection ignores the @CollectionTable

** Task
    * [HHH-14946] - Require JDK 11
    * [HHH-14923] - Allow CriteriaQuery to determine its "return type" as part of setting the selection
    * [HHH-14919] - Improve handling for java.sql.Date, Time and Timestamp
    * [HHH-14890] - One-to-one mapped-by referencing embedded nested property doesn't work in Hibernate 6.0.0.Beta1
    * [HHH-13395] - Update Envers to use the new Integrator signature.


Changes in 6.0.0.Beta2 (December 02, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31969

** Bug
    * [HHH-14914] - Passing an ExtendedBeanManager which is never notified leads to runtime errors
    * [HHH-14913] - sub-query modifiers are ignored
    * [HHH-14877] - FetchMode.SUBSELECT ignored
    * [HHH-14876] - Parameter padding for IN clauses doesn't work in Hibernate 6.0.0.Beta1
    * [HHH-14875] - Slow query log seems to be missing in Hibernate 6.0.0.Beta1
    * [HHH-14874] - Lazy loading of basic attributes in different @LazyGroups throws ArrayIndexOutOfBoundsException
    * [HHH-9862] - Multiple TREAT operators does not work properly for joined inheritance
    * [HHH-9229] - @Audited and @AuditOverride does not work consistently for embeddables that extend a mapped superclass
    * [HHH-9228] - @AuditOverride has no affect if an embeddable is @Audited

** Deprecation
    * [HHH-11469] - Remove ModificationStore 

** Improvement
    * [HHH-14928] - Document CDI integration
    * [HHH-14925] - Switch from BasicType to JavaType/JdbcType for Geometry types
    * [HHH-14836] - Provide `ExtensionTypes` class to hold the non-standard type codes
    * [HHH-14803] - Upgrade spatial support for MariaDB
    * [HHH-14802] - Upgrade spatial support for CockroachDB
    * [HHH-14801] - Upgrade spatial support for Postgis
    * [HHH-14800] - Remove need for SpatialDialects
    * [HHH-14738] - Update tests for hibernate-spatial to junit5 
    * [HHH-14403] - Walk Fetchables for a container width-first rather than depth-first
    * [HHH-12077] - Support short-naming of audit strategies via configuration.
    * [HHH-11483] - Build models based on JAXB rather than using Dom4J
    * [HHH-10496] - Allow RevisionTimestamp to be of type java.time.LocalDateTime

** New Feature
    * [HHH-14906] - Support H2GIS in Spatial
    * [HHH-14663] - Add testing for s390x to Jenkins CI
    * [HHH-14576] - Support TiDB
    * [HHH-10925] - Add annotation to ignore specific tests based on audit strategy being used.
    * [HHH-9062] - Validity audit strategy: end revision timestamp is not stored in tables for joined subclasses
    * [HHH-6210] - ValidityAuditStrategy doesn't support a numeric column for the revision end timestamp
    * [HHH-5529] - Bulk delete on Entity with @ElementCollection ignores the @CollectionTable

** Task
    * [HHH-14946] - Require JDK 11
    * [HHH-14923] - Allow CriteriaQuery to determine its "return type" as part of setting the selection
    * [HHH-14919] - Improve handling for java.sql.Date, Time and Timestamp
    * [HHH-14890] - One-to-one mapped-by referencing embedded nested property doesn't work in Hibernate 6.0.0.Beta1
    * [HHH-13395] - Update Envers to use the new Integrator signature.



Changes in 6.0.0.Beta2 (December 02, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31969

** Bug
	* [HHH-14914] - Passing an ExtendedBeanManager which is never notified leads to runtime errors
	* [HHH-14913] - sub-query modifiers are ignored
	* [HHH-14877] - FetchMode.SUBSELECT ignored
	* [HHH-14876] - Parameter padding for IN clauses doesn't work in Hibernate 6.0.0.Beta1
	* [HHH-14875] - Slow query log seems to be missing in Hibernate 6.0.0.Beta1
	* [HHH-14874] - Lazy loading of basic attributes in different @LazyGroups throws ArrayIndexOutOfBoundsException
	* [HHH-9862] - Multiple TREAT operators does not work properly for joined inheritance
	* [HHH-9229] - @Audited and @AuditOverride does not work consistently for embeddables that extend a mapped superclass
	* [HHH-9228] - @AuditOverride has no affect if an embeddable is @Audited

** Deprecation
	* [HHH-11469] - Remove ModificationStore

** Improvement
	* [HHH-14928] - Document CDI integration
	* [HHH-14925] - Switch from BasicType to JavaType/JdbcType for Geometry types
	* [HHH-14836] - Provide `ExtensionTypes` class to hold the non-standard type codes
	* [HHH-14803] - Upgrade spatial support for MariaDB
	* [HHH-14802] - Upgrade spatial support for CockroachDB
	* [HHH-14801] - Upgrade spatial support for Postgis
	* [HHH-14800] - Remove need for SpatialDialects
	* [HHH-14738] - Update tests for hibernate-spatial to junit5
	* [HHH-14403] - Walk Fetchables for a container width-first rather than depth-first
	* [HHH-12077] - Support short-naming of audit strategies via configuration.
	* [HHH-11483] - Build models based on JAXB rather than using Dom4J
	* [HHH-10496] - Allow RevisionTimestamp to be of type java.time.LocalDateTime

** New Feature
	* [HHH-14906] - Support H2GIS in Spatial
	* [HHH-14663] - Add testing for s390x to Jenkins CI
	* [HHH-14576] - Support TiDB
	* [HHH-10925] - Add annotation to ignore specific tests based on audit strategy being used.
	* [HHH-9062] - Validity audit strategy: end revision timestamp is not stored in tables for joined subclasses
	* [HHH-6210] - ValidityAuditStrategy doesn't support a numeric column for the revision end timestamp
	* [HHH-5529] - Bulk delete on Entity with @ElementCollection ignores the @CollectionTable

** Task
	* [HHH-14946] - Require JDK 11
	* [HHH-14923] - Allow CriteriaQuery to determine its "return type" as part of setting the selection
	* [HHH-14919] - Improve handling for java.sql.Date, Time and Timestamp
	* [HHH-14890] - One-to-one mapped-by referencing embedded nested property doesn't work in Hibernate 6.0.0.Beta1
	* [HHH-13395] - Update Envers to use the new Integrator signature.



Changes in 6.0.0.Beta1 (October 11, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/27100

** Bug
    * [HHH-14820] - type-defs with "global" parameters not working
    * [HHH-14814] - Inconsistent rendering of table alias in delete queries
    * [HHH-14772] - Session.find does not respect enabled filters
    * [HHH-14764] - Testsuite: AssertionErrors must not be caught
    * [HHH-14763] - Avoid supress exceptions in try/finally
    * [HHH-14762] - Testsuite: Assert.notNull must not be used on primitive types
    * [HHH-13140] - Criteria API multiselect aliases are not passed through to the JPQL query and they are not available in ResultTransformer
    * [HHH-11280] - Proxy Narrowing (HHH-9071) breaks polymorphic query
    * [HHH-10504] - SQLQuery with join returns the joined entity instead of the root one
    * [HHH-7525] - @Formula annotation with native query returning entity value causes NullPointerException

** Improvement
    * [HHH-14865] - Re-work @Any and @ManyToAny support
    * [HHH-14864] - Drop legacy Type-based annotations
    * [HHH-14863] - Compositional definition of basic value mappings
    * [HHH-14856] - Introduce @CustomType
    * [HHH-14777] - Support LockOptions.SKIP_LOCKED for MariaDB 10.6+
    * [HHH-14642] - verify/test Criteria in v6
    * [HHH-14484] - Improve support for Firebird 4
    * [HHH-14452] - Support set operations in JPA Criteria API
    * [HHH-13717] - Implement HQL/Criteria TREAT support using SQM
    * [HHH-12623] - Improve Javadoc comments for QueryHints.html#NATIVE_SPACES
    * [HHH-11042] - Cannot count distinct on SQL Server on embedded ids
    * [HHH-10825] - Improve concurrency design of ServiceBinding

** New Feature
    * [HHH-14188] - Enumerated "short name" handling in HQL
    * [HHH-8172] - New matches query operator

** Remove Feature
    * [HHH-14870] - Rename {Xyz}TypeDescriptor as {Xyz}Type
    * [HHH-14846] - Drop JMX integration
    * [HHH-14844] - Drop JACC integration

** Task
    * [HHH-14871] - Temporarily disable hibernate-gradle-plugin
    * [HHH-14848] - Move Ant tasks + support from hibernate-core into tooling/hibernate-ant
    * [HHH-14837] - Migrate to Jakarta EE 
    * [HHH-11755] - Drop "Serializable" from the Event Listener interfaces


Changes in 6.0.0.Alpha9 (August 4, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31944

** Bug
    * [HHH-14719] - Hibernate has a dependency on apache-derby:10.11.1.1 that is vulnerable to CVE-2015-1832 with a CVSS of 9.1 and CVE-2018-1313 with a CVSS of 5.3
    * [HHH-14715 - Hibernate has a dependency to maven-core:3.0.5 that is vulnerable to CVE-2021-26291 with a CVSS of 9.1]
    * [HHH-14704] - Union \+ OneToOne is broken in Hibernate 6

** Improvement
    * [HHH-14745] - Add FunctionContributor contract
    * [HHH-14678] - Drop ResultSetWrapper and friends
    * [HHH-14617] - Remove `QueryLiteralRendering` and `LiteralHandlingMode` from v6 codebase
    * [HHH-14512] - Add Jenkinsfile for ORM
    * [HHH-2407] - rework HQL translator
    * [HHH-1615] - GROUP BY entity does not work

** New Feature
    * [HHH-14693] - Introduce hibernate-community-dialects module
    * [HHH-10668] - Add SQL dialect for SQLite 3

** Sub-task
    * [HHH-14718] - Drop deprecated generator implementations
    * [HHH-14495] - Use table name, rather than entity name, as base for per-entity implicit sequence naming
    * [HHH-3688] - Formalize new HQL normalize phase
    * [HHH-3687] - Formalize new HQL parse phase

** Task
    * [HHH-14605] - Handling for BLOB, CLOB and NCLOB relative to JavaTypeDescriptor `#isString` and `#isBinary`



Changes in 6.0.0.Alpha8 (May 18, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31932

** Bug
    * [HHH-14449] - ResultStream closing is not properly handled 

** Improvement
    * [HHH-14601] - fix typos of 'extracter' in v6
    * [HHH-14600] - verify UUID in v6
    * [HHH-10992] - Extend support for integrator-contributed domain and relational objects

** Remove Feature
    * [HHH-14598] - Drop `hibernate-infinispan`
    * [HHH-14518] - Drop hibernate-osgi module

** Task
    * [HHH-14589] - Make sure documentation examples regarding basic-types work and update the section
    * [HHH-14524] - Rename SqlType(X) as JdbcType(X)
    * [HHH-14513] - Move publishing release artifacts from BinTray
    * [HHH-12416] - Drop (or set up relocation) for hibernate-ehcache
    * [HHH-11995] - Drop hibernate-entitymanager artifact
    * [HHH-11994] - Drop hibernate-java8 artifact
    * [HHH-11692] - Consider a new matches operator



Changes in 6.0.0.Alpha7 (March 18, 2021)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31878

** Bug
    * [HHH-14390] - StackOverflowError with @Fetch(FetchMode.SELECT) mapped for entity with an ID that is a bidirectional one-to-one eager association
    * [HHH-14394] - Column "XYZ" must be in the GROUP BY list; SQL Error: 90016
    * [HHH-14466] - StackOverflowError loading an entity with eager one-to-many if bidirectional and many-to-one side is the ID
    * [HHH-14508] - Logging in debug mode gives an invalid conversion error in StandardRowReader.java

** New Feature
    * [HHH-1050] - HQL Unions
    * [HHH-14188] - Enumerated "short name" handling in HQL
    * [HHH-14285] - Create "project template"
    * [HHH-14409] - Internal format of natural-id values

** Task
    * [HHH-14186] - @ColumnTransformer support
    * [HHH-14192] - H2 compatibility: explicitly specify precision/scale for @Column in test
    * [HHH-14195] - Generated DDL for UUID fields contains columns of length 255
    * [HHH-14315] - Upgrade to Gradle 6.7 and use toolchains for per-JDK builds

** Improvement
    * [HHH-10282] - AttributeConverter for Enum within JPQL query
    * [HHH-13077] - Optimize query plan call count
    * [HHH-13658] - Make NO_PROXY unnecessary
    * [HHH-13884] - Follow javax.persistence.criteria.Order.reverse() contract
    * [HHH-14286] - Improvements to Hibernate's Gradle Plugin
    * [HHH-14313] - New natural-id features
    * [HHH-14318] - `@JoinFormula` and `@JoinColumnOrFormula` support
    * [HHH-14452] - Support set operations in JPA Criteria API
    * [HHH-14456] - Allow unwrap of DialectResolutionInfo to support detecting PostgreSQL forks
    * [HHH-14478] - Allow DialectResolvers to be discovered by ServiceLoader

** Sub-task
    * [HHH-13757] - Second-level cache cleanup
    * [HHH-14469] - Support schema-tooling on sub-sets of the relational model known to Hibernate
    * [HHH-14491] - Apply default allocation/increment size for @GeneratedValue(AUTO)
    * [HHH-14492] - Prefer sequence-per-entity (hierarchy) by default

** Remove Feature
    * [HHH-14450] - Drop ability to disable "enhanced proxies"




Changes in 6.0.0.Alpha6 (August 20, 2020)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31848

** Bug
    * [HHH-13828] - Drop EntityPersister extending the internal interface InFlightEntityMappingType

** Improvement
    * [HHH-14172] - Drop any/all usage of Javassist
    * [HHH-14167] - JpaCompliance for @OrderBy handling
    * [HHH-13745] - Verify HqlTranslator usability without SessionFactory

** New Feature
    * [HHH-13132] - HQL inline EntityGraph support
    * [HHH-1523] - Rebuild fetches from query-cache hits

** Task
    * [HHH-14174] - Implent Collection#getElementByIndex
    * [HHH-14173] - @Parent support
    * [HHH-14171] - `@Formula` support
    * [HHH-14170] - Implement RowId support
    * [HHH-14169] - Implement SQM `member of` predicate
    * [HHH-14168] - Support for custom Type/UserType impls
    * [HHH-14166] - Allow nulls-precedence in HQL/SQM
    * [HHH-14165] - Implement support for embeddable-valued QueryParameters
    * [HHH-14164] - Verify / enable query result caching
    * [HHH-14163] - Named ResultSet mappings
    * [HHH-14162] - NativeQuery support
    * [HHH-14161] - NamedQuery support



Changes in 6.0.0.Alpha5 (April 24, 2020)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/browse/HHH/fixforversion/31821

** Bug
    * [HHH-13711] - H2 dialect not accurate for drop table since version 1.4.200

** Task
    * [HHH-13937] - Remove JUnit 5 as compile-time dependency
    * [HHH-13953] - Upgrade dom4j to 2.1.3



Changes in 6.0.0.Alpha4 (December 20, 2019)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31817

** Bug
    * [HHH-13777] - UnsupportedOperationException is thrown for MappedSuperclass if the id is declared on subclasses

** Task
    * [HHH-13746] - Implement Load by Multiple Ids using SQL AST
    * [HHH-13763] - Update all load-by-key handling to use SQL AST
    * [HHH-13778] - `@OrderBy` handling using SQL AST

** Improvement
    * [HHH-13718] - secondary tables support
    * [HHH-13769] - Avoid unnecessary joins


Changes in 6.0.0.Alpha1 (November 23, 2019)
------------------------------------------------------------------------------------------------------------------------

https://hibernate.atlassian.net/projects/HHH/versions/31768/

** Sub-task
    * [HHH-13714] - HQL/Criteria UPDATE support
    * [HHH-13715] - HQL/Criteria DELETE support

** New Feature
    * [HHH-11474] - Implement support for LIMIT and OFFSET clause

** Task
    * [HHH-13395] - Update Envers to use the new Integrator signature.
    * [HHH-13725] - Implement ToOne Associations support
    * [HHH-13732] - Implement OneToOne support

** Improvement
    * [HHH-11828] - Adjust EntityMode, Tuplizer and friends to the 6.0 metamodel (Navigable et.al.) contracts
    * [HHH-13081] - Pass BootstrapContext to Integrator#integrate
    * [HHH-13224] - Look at removing references to SessionFactory from various components

** Remove Feature
    * [HHH-10071] - Remove support for "collection properties" in HQL
    * [HHH-11990] - Remove LogicalConnectionImplementor#makeShareableCopy