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

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

Changes in 7.0.0.Beta3 (December 05, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Bug
    * [HHH-18912] - Fix ORM release process
    * [HHH-18881] - In MySQL, array of dates are not converted correctly
    * [HHH-18872] - ConcreteProxy type not restored from 2LC when loading a ManyToOne
    * [HHH-18862] - Group by error due to subselect using foreign key reference instead of primary key in HQL query
    * [HHH-18859] - slice operator and @ElementCollection
    * [HHH-18851] - ArrayContainsArgumentTypeResolver wrongly infers array type for needle argument
    * [HHH-18850] - createCountQuery with Hibernate 6.6.2
    * [HHH-18848] - JAR for org.hibernate.orm:hibernate-scan-jandex:7.0.0.Beta2 at Maven Central
    * [HHH-18842] - Regression: CollectionType.replace() breaks if target is PersistentCollection, but not instance of Collection (e.g. PersistentMap)
    * [HHH-18832] - Bytecode enhancement skipped for entities with "compute-only" @Transient properties
    * [HHH-18830] - extraneous SQL UPDATE statements for unowned collection with @OrderColumn
    * [HHH-18826] - mappedBy validation in Processor
    * [HHH-18765] - Error in the booleanarray_to_string auxiliary function 
    * [HHH-18709] - CriteriaUpdate involving JSON field containing Map<String, Object> results in SemanticException
    * [HHH-18705] - Hibernate processor creates bad TypedReferenceQuery when @Entity have name attribute
    * [HHH-18692] - Hibernate attempts to close batched statements multiple times 
    * [HHH-18629] - Inconsistent column alias generated while result class is used for placeholder
    * [HHH-18610] - "SQLGrammarException: Unable to find column position by name:" when using Single Table Inheritance with a strict JDBC driver such as PostgreSQL
    * [HHH-18583] - Joined + discriminator inheritance treat in where clause not restricting to subtype
    * [HHH-18274] - Problems with generics in queries; proposed partial solution
    * [HHH-18069] - NullPointerException when unioning partition results
    * [HHH-17838] - @OneToOne relationship + @Embeddable keys + FetchType.LAZY fail in most recent version
    * [HHH-16054] - JPA / Hibernate, duplicate pkey error when updating entity that is a subclass of a base class that uses IdClass for composite primary key
    * [HHH-14119] - IN clause parameter padding not working for criteria query in conjunction with LiteralHandlingMode.BIND

** Improvement
    * [HHH-18875] - Stop using `Array.newInstance` in `org.hibernate.internal.util.collections.StandardStack`
    * [HHH-18861] - Improve GitHub release announcement body for automated releases
    * [HHH-18847] - Organize the org.hibernate.query.results package
    * [HHH-18844] - Run preVerifyRelease task as part of h2 CI job
    * [HHH-18841] - Make `_identifierMapper` property added for a IdClass synthetic
    * [HHH-18840] - detect and report incorrect usage of @OrderColumn, @MapKeyColumn, and @MapKey
    * [HHH-18683] - The method Metamodel#entity(String) should throw IllegalArgumentException for non-entities
    * [HHH-18534] - Remove the org.hibernate.boot.models.categorize package
    * [HHH-17246] - Guard against Sybase being configured for truncating trailing zeros.
    * [HHH-16160] - XML aggregate support for more databases
    * [HHH-14020] - Allow Hibernate Types to have access to ServiceRegistry during initialization
    * [HHH-7913] - Catalog and schema replacement in <subselect> / @Subselect

** New Feature
    * [HHH-18644] - New and improved hibernate-maven-plugin

** Remove Feature
    * [HHH-18843] - remove deprecated @OrderBy annotation

** Sub-task
    * [HHH-18804] - Add XML aggregate support for HANA
    * [HHH-18803] - Add XML aggregate support for DB2
    * [HHH-18802] - Add XML aggregate support for SQL Server
    * [HHH-18801] - Add XML aggregate support for Sybase ASE
    * [HHH-18800] - Add XML aggregate support for PostgreSQL
    * [HHH-18799] - Add XML aggregate support for Oracle

** Task
    * [HHH-18906] - Allow specifying UnsupportedEnhancementStrategy for Hibernate testing
    * [HHH-18866] - Fix more failing tests on CockroachDB
    * [HHH-18854] - Changes for Hibernate Reactive 3.0 integration
    * [HHH-18678] - Use specific tasks for CI builds


Changes in 7.0.0.Beta2 (November 13, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Bug
    * [HHH-18816] - Error when rendering the fk-side of an association in an exists subquery
    * [HHH-18808] - HqlParser.g4 outputs wrong token for `nakedIdentifier` and `identifier` when keyword is used
    * [HHH-18807] - a bug in HqlLexer.g4
    * [HHH-18806] - handling of nationalized strings on Sybase / jTDS
    * [HHH-18773] - Multiple selections of same alias triggers possible non-threadsafe access to the session
    * [HHH-18770] - NPE when using the JFR integration with JFR disabled
    * [HHH-18764] - Class cast exception when using non basic type as identifier and in an embedded field using a natural ID
    * [HHH-18761] - named query method generation for @NamedQuery on entity
    * [HHH-18739] - Do not support join queries when using Mysql
    * [HHH-18738] - Schema of database sequence is not configured if xml mapping is used
    * [HHH-18730] - Multi-column association in aggregate component doesn't work
    * [HHH-18720] - Type check on select columns in union all gives SemanticException when there is a null column
    * [HHH-18719] - Previous row state reuse can provide detached entities to the consumer
    * [HHH-18712] - Warning about attempts to update an immutable entity for normal (not immutable) entity
    * [HHH-18703] - JoinedSubclassEntityPersister#getTableNameForColumn KO
    * [HHH-18702] - Exception using @EmbeddedId with @OneToMany that refers to an alternate key column
    * [HHH-18699] - Correctly handle @Id and @Version fields in query validation in Hibernate Processor
    * [HHH-18697] - JPA 3.2 spec compliance for uppercasing of names in Hibernate Processor
    * [HHH-18696] - @Find method for single @NaturalId field
    * [HHH-18692] - Hibernate attempts to close batched statements multiple times 
    * [HHH-18689] - 'FULL' query cache sometimes incomplete
    * [HHH-18681] - InterpretationException executing subquery in case-when : o.h.query.sqm.tree.select.SqmSelection.getExpressible() is null
    * [HHH-18675] - Self-referencing many-to-many relation on generic entity gives NullPointerException in mapping
    * [HHH-18671] - Fix setting name (spelling)
    * [HHH-18669] - NullPointerException in the AgroalConnectionProvider
    * [HHH-18667] - Annotation processor leaks - OOME when used in Eclipse IDE
    * [HHH-18662] - Attribute not mentioned in orm.xml ends up not being mapped in Hibernate ORM 7
    * [HHH-18658] - Inner join prevents finding an entity instance referencing an empty map
    * [HHH-18647] - SemanticException when using createCriteriaInsertValues to insert into foreign key column
    * [HHH-18645] - AssertionError in AbstractBatchEntitySelectFetchInitializer#registerToBatchFetchQueue
    * [HHH-18642] - DB2: select from new table with identity column not working when missing read permission
    * [HHH-18635] - Avoid using `bigdatetime` column type on Sybase jconn when not necessary
    * [HHH-18632] - Concurrency issue with AbstractEntityPersister#nonLazyPropertyLoadPlansByName
    * [HHH-18631] - AssertionError when loading an entity after removing another, associated entity
    * [HHH-18628] - Regression: Unable to determine TableReference
    * [HHH-18626] - @Id annotation in @Embeddable class results in AssertionFailure
    * [HHH-18617] - Fetching unowned side of bidirectional OneToOne mappings including tenant identifier triggers EntityFilteredException
    * [HHH-18608] - NPE in EntityInitializerImpl.resolveInstanceSubInitializers
    * [HHH-18596] - ValueHandlingMode hack in query pagination
    * [HHH-18585] - exposure of internal types via Dialect
    * [HHH-18582] - Mapping array of arrays with @JdbcTypeCode(SqlTypes.ARRAY) causes NPE
    * [HHH-18581] - Performance degradation from Hibernate 5 to 6 on NativeQuery
    * [HHH-18575] - IN predicate with numeric/decimal parameter types leads to Binding is multi-valued; illegal call to #getBindValue
    * [HHH-18571] - Entities and collections with batch size 1 are treated as batchable
    * [HHH-18570] - Invalid SQL when filter contains identifier named date
    * [HHH-18565] - Bytecode enhancement, assertion error on reloading *toOne entities
    * [HHH-18564] - Literal expressions using AttributeConverters stopped working in hibernate 6
    * [HHH-18561] - Informix primary key constraint syntax error
    * [HHH-18560] - DB2iDialect executes incompatible query in combination with @AuditJoinTable mapping
    * [HHH-18558] - Informix UUID type support


Changes in 7.0.0.Beta1 (August 01, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Bug
    * [HHH-18314] - dialect for Db2 claims to be NationalizationSupport.EXPLICIT but never generates DDL with NCHAR/NVARCHAR

** Improvement
    * [HHH-18453] - Fix Java code block highlighting in User Guide
    * [HHH-18448] - Add cast and notEqualTo methods to JpaExpression and SqmExpression
    * [HHH-18441] - Create extension to PersistenceConfiguration
    * [HHH-18440] - Rewrite the Bootstrapping chapter in the User Guide
    * [HHH-18412] - Upgrade JBoss Logging Tools (processor) to 3.0.1.Final
    * [HHH-18393] - Upgrade JBoss Logging Tools (processor) to 3.0.0.Final
    * [HHH-18316] - use utf8mb4 instead of utf8 a.k.a utf8mb3 on MySQL
    * [HHH-18097] - Replace `java.io.Closeable` with `java.lang.AutoCloseable`
    * [HHH-18009] - Consolidate JdbcObserver and ConnectionObserver into JdbcEventHandler
    * [HHH-17720] - Add common JAXB contracts for named queries

** New Feature
    * [HHH-18304] - Transform hbm.xml key-many-to-one references
    * [HHH-18281] - Transform <filter-def/> and <filter/>
    * [HHH-18266] - HbmXmlTransformer hbm inverse
    * [HHH-18265] - HbmXmlTransformer transform hbm <key column=""/> 
    * [HHH-18264] - HbmXmlTransformer collection classification
    * [HHH-18060] - HbmXmlTransformer work
    * [HHH-17979] - Add @PropertyRef

** Remove Feature
    * [HHH-18452] - Remove deprecated org.hibernate.Interceptor methods
    * [HHH-18449] - Remove deprecated Integrator#integrate form
    * [HHH-18444] - Remove deprecate Session#refresh methods
    * [HHH-18443] - Drop SessionFactoryBuilder#enableJpaListCompliance
    * [HHH-18442] - Drop DynamicInsert#value and DynamicUpdate#value
    * [HHH-18437] - Remove deprecations from JdbcSessionContext
    * [HHH-18428] - Remove Session#delete
    * [HHH-18199] - Remove @Where and @WhereJoinTable
    * [HHH-18196] - Remove Session#save / Session#update / Session#saveOrUpdate
    * [HHH-18195] - Remove @SelectBeforeUpdate
    * [HHH-18194] - Remove @Proxy
    * [HHH-18193] - Remove @Polymorphism
    * [HHH-18191] - Remove @LazyToOne
    * [HHH-18190] - Remove @LazyCollection
    * [HHH-18189] - Remove @IndexColumn
    * [HHH-18188] - Remove GenerationTime and its uses
    * [HHH-18186] - Remove @GeneratorType
    * [HHH-18184] - Remove CacheModeType and its uses
    * [HHH-17697] - Remove deprecated annotations

** Sub-task
    * [HHH-18197] - Remove @Table
    * [HHH-18192] - Remove @Loader
    * [HHH-18187] - Remove @Index
    * [HHH-18185] - Remove @ForeignKey
    * [HHH-18075] - Transform property-ref
    * [HHH-17888] - Remove support for MariaDB versions older than 10.5

** Task
    * [HHH-18397] - Transform "foreign" generators
    * [HHH-18396] - Transform property-ref pointing to a to-one attribute
    * [HHH-18394] - Fix transformation of nested subclass mappings
    * [HHH-18037] - Move DerbyDialect to hibernate-community-dialects
    * [HHH-18010] - Investigate ConnectionObserver and friends
    * [HHH-17583] - Cleanup for 7.0
    * [HHH-17448] - Add newly standard column annotation attributes to Hibernate column annotations


Changes in 7.0.0.Alpha3 (June 14, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Bug
    * [HHH-18135] - GenerationTypeStrategy implementations always throw UnsupportedOperationException
    * [HHH-18081] - XML  <secondary-table/> element is not added to JdkClassDetails
    * [HHH-11937] - Remove warnings about "empty composites" being experimental when feature is stabilized
    * [HHH-11936] - Stabilize "empty composites" feature

** New Feature
    * [HHH-18231] - SPI for persistence XML parsing
    * [HHH-18057] - Support for JPA 3.2 column options
    * [HHH-18056] - Support for JPA 32 table options
    * [HHH-18055] - Support for JPA 3.2 table comment
    * [HHH-18054] - Support for JPA 3.2 @CheckConstraint
    * [HHH-16153] - Support JPA 3.2 `@EnumeratedValue`

** Remove Feature
    * [HHH-18222] - remove hibernate.create_empty_composites.enabled in Hibernate 7
    * [HHH-18207] - remove deprecated Dialects
    * [HHH-18139] - remove IdentifierGeneratorFactory and related code

** Sub-task
    * [HHH-18095] - Transform hbm.xml column read/write fragments
    * [HHH-18072] - Transform hbm.xml not-found

** Task
    * [HHH-18127] - Leverage hibernate-models Annotation-as-Class
    * [HHH-18096] - Support for JPA 3.2 database generator options


Changes in 7.0.0.Alpha2 (May 03, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Bug
    * [HHH-18053] - duration arithmetic with fractional seconds
    * [HHH-18049] - Handle <exclude-default-listeners/> and <exclude-superclass-listeners/>
    * [HHH-18042] - ConstructorResults defined in XML are not applied
    * [HHH-18041] - With SharedCacheMode.DISABLE_SELECTIVE entities with cacheable false should not be cached
    * [HHH-18039] - EntityListeners defined in XML should replace those from annotations, not add to
    * [HHH-18038] - Fall back to persistence-unit name as SessionFactory name
    * [HHH-18036] - Retrieving java.sql.Date from Oracle contains unwanted milliseconds
    * [HHH-18028] - TCK test failure with attribute converter and Embeddable
    * [HHH-18018] - Derby implementation for 'right' function wrongly passes parameter to 'length'

** Improvement
    * [HHH-18048] - Split notions of SessionFactory name and SessionFactory JNDI name
    * [HHH-18005] - Remove AnnotationDescriptor#createUsage method calls that rely on lambdas for configuration
    * [HHH-18003] - Create a PersistenceUnitDescriptor wrapper around JPA 3.2 PersistenceConfiguration
    * [HHH-18000] - Remove XmlProcessingHelper methods for creating AnnotationUsage instances

** New Feature
    * [HHH-18025] - RefreshOptions & LockOptions for Hibernate 7
    * [HHH-18001] - FindOptions for Hibernate 7

** Task
    * [HHH-18043] - Change SQL Server default timestamp precision to 7
    * [HHH-18035] - Change Oracle default timestamp precision to 9
    * [HHH-17982] - Setup JPA 3.2 TCK testing automation for ORM 7


Changes in 7.0.0.Alpha1 (April 16, 2024)
------------------------------------------------------------------------------------------------------------------------

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

** Deprecation
    * [HHH-17441] - Deprecate @Comment

** New Feature
    * [HHH-17460] - Ongoing JPA 3.2 work
    * [HHH-17459] - Allow resolution callbacks on select o.h.mapping objects

** Remove Feature
    * [HHH-17961] - Drop support for hibernate.mapping.precedence
    * [HHH-17894] - Remove AdditionalJaxbMappingProducer
    * [HHH-17893] - Remove MetadataContributor
    * [HHH-17892] - Remove @Persister

** Task
    * [HHH-17444] - Ongoing JPA 32 work