Branch: refs/heads/main
Home:
https://github.com/hibernate/hibernate-orm
Commit: 233ed5ce82a05ddd286bc34e3da74bca0cfebbb0
https://github.com/hibernate/hibernate-orm/commit/233ed5ce82a05ddd286bc34...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
A design/collection-flush-processing-spec.adoc
A design/collection-flush-processing.adoc
Log Message:
-----------
(no Jira yet) - More GraphBasedActionQueue work - collection flushing
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: 733ca6e71a1f00ccbcbc20b6792d8f0b521d2fa6
https://github.com/hibernate/hibernate-orm/commit/733ca6e71a1f00ccbcbc20b...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
A design/cascade-processing-implementation-plan.adoc
A design/cascade-processing-spec.adoc
M design/collection-flush-processing-spec.adoc
M design/collection-flush-processing.adoc
A hibernate-core/src/main/java/org/hibernate/cascade/internal/Cascade.java
A
hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeTraversalContext.java
A hibernate-core/src/main/java/org/hibernate/cascade/internal/package-info.java
A hibernate-core/src/main/java/org/hibernate/cascade/package-info.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadePoint.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadeStyle.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadeStyles.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadingAction.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadingActions.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/package-info.java
R hibernate-core/src/main/java/org/hibernate/engine/internal/Cascade.java
R hibernate-core/src/main/java/org/hibernate/engine/internal/CascadePoint.java
M hibernate-core/src/main/java/org/hibernate/engine/internal/Nullability.java
R hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyle.java
R hibernate-core/src/main/java/org/hibernate/engine/spi/CascadeStyles.java
R hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingAction.java
R hibernate-core/src/main/java/org/hibernate/engine/spi/CascadingActions.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/AbstractSaveEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultDeleteEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultEvictEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultMergeEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultPersistEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultPersistOnFlushEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultRefreshEventListener.java
M hibernate-core/src/main/java/org/hibernate/internal/CoreMessageLogger.java
M
hibernate-core/src/main/java/org/hibernate/loader/ast/spi/CascadingFetchProfile.java
M hibernate-core/src/main/java/org/hibernate/mapping/Property.java
M hibernate-core/src/main/java/org/hibernate/metamodel/mapping/AttributeMetadata.java
M
hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/MappingModelCreationHelper.java
M
hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/PluralAttributeMappingImpl.java
M
hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/SimpleAttributeMetadata.java
M
hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
M
hibernate-core/src/main/java/org/hibernate/persister/entity/BaseEntityPersister.java
M hibernate-core/src/main/java/org/hibernate/persister/entity/EntityPersister.java
M
hibernate-core/src/main/java/org/hibernate/sql/results/graph/entity/internal/EntityInitializerImpl.java
M hibernate-core/src/main/java/org/hibernate/type/AnyType.java
M hibernate-core/src/main/java/org/hibernate/type/AssociationType.java
M hibernate-core/src/main/java/org/hibernate/type/ComponentType.java
M hibernate-core/src/main/java/org/hibernate/type/CompositeType.java
M hibernate-core/src/main/java/org/hibernate/type/ForeignKeyDirection.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeTraversalContextTest.java
M hibernate-core/src/test/resources/log4j2.properties
Log Message:
-----------
HHH-20765 - Move cascade handling into a dedicated package
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: fb610974d3c0585c006935766b94f96d8f98752e
https://github.com/hibernate/hibernate-orm/commit/fb610974d3c0585c0069357...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
R design/cascade-processing-implementation-plan.adoc
R design/cascade-processing-spec.adoc
M design/collection-flush-processing-spec.adoc
M design/collection-flush-processing.adoc
A
hibernate-core/src/jmh/java/org/hibernate/cascade/internal/CascadeTraversalBenchmark.java
A
hibernate-core/src/jmh/java/org/hibernate/cascade/internal/CascadeTraversalBenchmarkModel.java
M hibernate-core/src/main/java/org/hibernate/cascade/internal/Cascade.java
A
hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeDecisionTrace.java
A hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeEffectMode.java
A
hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadePathDiagnostic.java
A hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeTraceEvent.java
M
hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeTraversalContext.java
A hibernate-core/src/main/java/org/hibernate/cascade/internal/CascadeWalker.java
A
hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadePropertySelection.java
A hibernate-core/src/main/java/org/hibernate/cascade/spi/PropertySelectionKind.java
M
hibernate-core/src/main/java/org/hibernate/metamodel/model/domain/internal/MappingMetamodelImpl.java
M
hibernate-core/src/main/java/org/hibernate/persister/entity/AbstractEntityPersister.java
M
hibernate-core/src/main/java/org/hibernate/persister/entity/BaseEntityPersister.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeBehaviorTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeDiagnosticsTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadePropertySelectionIntegrationTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeStructureTest.java
M
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeTraversalContextTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeWalkerIntegrationTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/spi/CascadePropertySelectionTest.java
Log Message:
-----------
HHH-20767 - Improve cascade processing
* Scope traversal state per invocation and improve failure-path diagnostics
* Precompute persister-owned property selections for all built-in cascade actions
* Add comprehensive behavioral, integration, regression, and JMH coverage
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: e1915bf9bb158b67514e658aa3246b604a774509
https://github.com/hibernate/hibernate-orm/commit/e1915bf9bb158b67514e658...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/cascade/internal/Cascade.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadePoint.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadeStyles.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadingActions.java
M
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeBehaviorTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeLockRemovalTest.java
M
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeWalkerIntegrationTest.java
M hibernate-core/src/test/resources/mappings/models/simple1.xml
A
hibernate-core/src/test/resources/org/hibernate/cascade/internal/lock-cascade.hbm.xml
M hibernate-core/src/test/resources/org/hibernate/orm/test/jpa/model/Part.hbm.xml
M hibernate-core/src/test/resources/org/hibernate/orm/test/legacy/Category.hbm.xml
M hibernate-jcache/src/test/resources/hibernate-config/domain/Account.hbm.xml
M hibernate-jcache/src/test/resources/hibernate-config/domain/Event.hbm.xml
Log Message:
-----------
HHH-20769 - Drop LOCK cascading
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: fc274590abac6061e95b8e69493180af608b3ee4
https://github.com/hibernate/hibernate-orm/commit/fc274590abac6061e95b8e6...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M design/collection-flush-processing.adoc
M hibernate-core/src/main/java/org/hibernate/cascade/internal/Cascade.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadeStyle.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadeStyles.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadingAction.java
M hibernate-core/src/main/java/org/hibernate/cascade/spi/CascadingActions.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeExtensionRemovalTest.java
A
hibernate-core/src/test/resources/org/hibernate/cascade/internal/extension-cascade.hbm.xml
Log Message:
-----------
HHH-20770 - Drop support for custom CascadeStyle and CascadeAction implementations
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: 0199435e97c6bb7009666854162064cf45a8505c
https://github.com/hibernate/hibernate-orm/commit/0199435e97c6bb700966685...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M design/collection-flush-processing-spec.adoc
M design/collection-flush-processing.adoc
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/FlushCoordinator.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/GraphBasedActionQueue.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/AbstractOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/BasicCollectionDecomposer.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/CollectionExecutionMonitor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/DecompositionSupport.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/StandardOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/TablePerSubclassOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/AbstractStepExecutor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/BatchingPlanStepExecutor.java
M hibernate-core/src/main/java/org/hibernate/action/queue/spi/ActionQueue.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/ActionQueueCheckpoint.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/bind/OperationExecutionMonitor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/plan/FlushOperation.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/ActionQueueLegacy.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultAutoFlushEventListener.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/FlushCoordinatorCollectionGroupingTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/CollectionExecutionMonitorTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/OneToManyFallbackOrdinalTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/exec/BatchingExecutionMonitorTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/action/queue/ActionQueueCheckpointTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/events/AutoFlushEventListenerTest.java
M migration-guide.adoc
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* Replaced ActionQueue.clearFromFlushNeededCheck(int) with explicit checkpoint/restore
semantic.
* Corrected speculative-flush retention, including orphan collection removals.
* Fixed partial-flush collection counts.
* Fixed one-to-many fallback ordinal ranges.
* Prevented NO_OP completion carriers from merging across collection mutations.
* Moved collection diagnostic monitoring from decomposition to physical execution,
including explicit/implicit JDBC batches and failure reporting.
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: f3c2773e1b472a245961fc8f34b998433a0f304c
https://github.com/hibernate/hibernate-orm/commit/f3c2773e1b472a245961fc8...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRecreateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRemoveAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionUpdateAction.java
M hibernate-core/src/main/java/org/hibernate/action/internal/EntityUpdateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/FlushCoordinator.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/GraphBasedActionQueue.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/Decomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/AbstractOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/BasicCollectionDecomposer.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationCompletion.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/DecompositionSupport.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/PostCollectionRecreateHandling.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/PostCollectionRemoveHandling.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/PostCollectionUpdateHandling.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/entity/PostUpdateHandling.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/entity/UpdateDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/AbstractStepExecutor.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/CollectionMutationId.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/decompose/DecompositionContext.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/plan/FlushOperation.java
M hibernate-core/src/main/java/org/hibernate/engine/internal/Collections.java
M
hibernate-core/src/main/java/org/hibernate/engine/internal/FlushProcessingContext.java
A
hibernate-core/src/main/java/org/hibernate/engine/internal/OwnerUpdateCompletionCoordinator.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/ActionQueueLegacy.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/PostUpdateEventListenerStandardImpl.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationCompletionTest.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/exec/BatchingExecutionMonitorTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/exec/CollectionMutationExecutorCompletionTest.java
A
hibernate-core/src/test/java/org/hibernate/engine/internal/OwnerUpdateCompletionCoordinatorTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/detached/DetachedMultipleCollectionChangeTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/detached/MergeCollectionEventTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/jpa/callbacks/jpa4/AssociationChangeTests.java
M migration-guide.adoc
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* CollectionMutationId for explicit semantic completion accounting.
* Direct, batched, grouped, zero-operation, failure, and synthesized-fixup handling.
* Improved owner-level @PreUpdate/@PostUpdate coordination across entity and collection
work.
* Statistics deferred until after the coordinated owner @PostUpdate.
* Removal of the old graph-only callback wrapper/deduplication path.
* Remove-before-recreate interceptor ordering.
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: 4d8eb5fa8f401cd4b82087ed57a4171b9604d1a7
https://github.com/hibernate/hibernate-orm/commit/4d8eb5fa8f401cd4b82087e...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/action/internal/CollectionAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRecreateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRemoveAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionUpdateAction.java
M hibernate-core/src/main/java/org/hibernate/action/internal/EntityUpdateAction.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationActionLowering.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationPreparer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/GraphBasedActionQueue.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/PreparedCollectionMutation.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/AbstractOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/BasicCollectionDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/StandardOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/TablePerSubclassOneToManyDecomposer.java
M hibernate-core/src/main/java/org/hibernate/action/queue/spi/ActionQueue.java
A hibernate-core/src/main/java/org/hibernate/action/queue/spi/CollectionEndpoint.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/CollectionMutationInput.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/CollectionTransition.java
M
hibernate-core/src/main/java/org/hibernate/engine/internal/FlushProcessingContext.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/ActionQueueLegacy.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultAutoFlushEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultDeleteEventListener.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/DefaultFlushEntityEventListener.java
M hibernate-core/src/main/java/org/hibernate/event/internal/ReattachVisitor.java
M hibernate-core/src/main/java/org/hibernate/event/internal/WrapVisitor.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/action/queue/ActionQueueCheckpointTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/AbstractCollectionEventTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/association/AbstractAssociationCollectionEventTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/detached/DetachedMultipleCollectionChangeTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/detached/MergeCollectionEventTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/flush/CollectionAutoFlushLifecycleTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/jpa/callbacks/jpa4/AssociationChangeTests.java
M migration-guide.adoc
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* Replaced the four collection addAction(...) overloads in favor of queue-neutral
CollectionMutationInput.
* Shared positive-decision lifecycle preparation.
* Checkpointing, query-space detection, counting, and lowering in both queues.
* Deferred speculative @PreUpdate, including collection mutation or reference
replacement.
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: b01b26851b07d805840cffa125f69ea3c76aa030
https://github.com/hibernate/hibernate-orm/commit/b01b26851b07d805840cffa...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/action/internal/CollectionAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRecreateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRemoveAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionUpdateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/QueuedOperationCollectionAction.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationActionLowering.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationPreparer.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/FrozenCollectionDelta.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/PreparedCollectionMutation.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardArraySemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardBagSemantics.java
A
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardCollectionDeltaProducer.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardIdentifierBagSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardListSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardMapSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSetSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSortedMapSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSortedSetSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/spi/AbstractPersistentCollection.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionBaseline.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionChange.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDelta.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProducer.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProduction.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProductionContext.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/DeferredCollectionIdentifier.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/DeferredCollectionPosition.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/DeltaCoverage.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/DeltaSource.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/LegacyCompatibleCollectionDeltaProducer.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/PersistedCollectionSize.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentBag.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentList.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentSet.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/QueuedCollectionOperation.java
M
hibernate-core/src/main/java/org/hibernate/engine/internal/FlushProcessingContext.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/CollectionEntry.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionDeltaProducerContractTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionDeltaValidityTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CustomCollectionDeltaProducerTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/QueuedOperationDeltaTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/QueuedOperationInitializationTest.java
M migration-guide.adoc
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* Introduced the concept of CollectionDelta
* Introduced CollectionDeltaProducer owned by CollectionSemantics
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: 3b2afcfc7523676ecebfb3f8589434c6baa98534
https://github.com/hibernate/hibernate-orm/commit/3b2afcfc7523676ecebfb3f...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
A
hibernate-core/src/jmh/java/org/hibernate/action/queue/CollectionFlushProcessingBenchmark.java
Log Message:
-----------
HHH-20766 Add collection flush processing benchmark
Commit: a4d394d9c28ad18f27e452a31146d156f35b200c
https://github.com/hibernate/hibernate-orm/commit/a4d394d9c28ad18f27e452a...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
A design/collection-flush-processing-benchmark-results.adoc
M design/collection-flush-processing-spec.adoc
M design/collection-flush-processing.adoc
M
hibernate-core/src/jmh/java/org/hibernate/action/queue/CollectionFlushProcessingBenchmark.java
M hibernate-core/src/main/java/org/hibernate/action/internal/CollectionAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRecreateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionRemoveAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/CollectionUpdateAction.java
M
hibernate-core/src/main/java/org/hibernate/action/internal/QueuedOperationCollectionAction.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionCacheCleanupProcess.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationActionLowering.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationPreparer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/FlushCoordinator.java
R
hibernate-core/src/main/java/org/hibernate/action/queue/internal/FrozenCollectionDelta.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/GraphBasedActionQueue.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/PreparedCollectionMutation.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/Decomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/AbstractOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/BasicCollectionDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationCompletion.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationPlanSupport.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/DecompositionSupport.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/GroupedCollectionInsertBindPlan.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/StandardOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/TablePerSubclassOneToManyDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/AbstractStepExecutor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/BatchingPlanStepExecutor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/exec/StandardPlanStepExecutor.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/CollectionMutationInput.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/spi/bind/GroupedRowBindPlan.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/decompose/collection/CollectionDecomposer.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/CustomCollectionTypeSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardArraySemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardBagSemantics.java
R
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardCollectionDeltaProducer.java
A
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardCollectionMutationInterpreter.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardIdentifierBagSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardListSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardMapSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSetSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSortedMapSemantics.java
M
hibernate-core/src/main/java/org/hibernate/collection/internal/StandardSortedSetSemantics.java
R
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProducer.java
R
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProduction.java
R
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionDeltaProductionContext.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInterpretationContext.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionInterpretationProduction.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionMutationInterpretation.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionMutationInterpreter.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionSemantics.java
A hibernate-core/src/main/java/org/hibernate/collection/spi/FrozenCollectionRows.java
R
hibernate-core/src/main/java/org/hibernate/collection/spi/LegacyCompatibleCollectionDeltaProducer.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/LegacyCompatibleCollectionMutationInterpreter.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/PhysicalCollectionMutation.java
A
hibernate-core/src/main/java/org/hibernate/collection/spi/SemanticCollectionChange.java
M hibernate-core/src/main/java/org/hibernate/engine/internal/Collections.java
M
hibernate-core/src/main/java/org/hibernate/engine/internal/FlushProcessingContext.java
M
hibernate-core/src/main/java/org/hibernate/engine/internal/OwnerUpdateCompletionCoordinator.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/ActionQueueLegacy.java
M hibernate-core/src/main/java/org/hibernate/engine/spi/CollectionEntry.java
M
hibernate-core/src/main/java/org/hibernate/engine/spi/CollectionFlushActionTracker.java
M
hibernate-core/src/main/java/org/hibernate/event/internal/AbstractFlushingEventListener.java
M
hibernate-core/src/main/java/org/hibernate/persister/collection/BasicCollectionPersister.java
M
hibernate-core/src/main/java/org/hibernate/persister/collection/CollectionPersister.java
M
hibernate-core/src/main/java/org/hibernate/persister/collection/OneToManyPersister.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationCompletionTest.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/OneToManyFallbackOrdinalTest.java
A
hibernate-core/src/test/java/org/hibernate/engine/spi/CollectionEntryFlushStateTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/annotations/collectionelement/OnDeleteCascadeToElementCollectionTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delayedOperation/QueuedOperationFailureTest.java
R
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionDeltaProducerContractTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionDeltaValidityTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionInterpretationQueueExecutionTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionMutationInterpreterContractTest.java
R
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CustomCollectionDeltaProducerTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CustomCollectionMutationInterpreterTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/QueuedOperationDeltaTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/AbstractCollectionEventTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/EventAnalyzer.java
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* Introduced CollectionSemantics production of CollectionMutationInterpretation
* Introduced FrozenCollectionRows to avoid multiple inspection of collection state
* Improved coordination of callbacks, cache cleanup, statistics and queued-operation
finalization
* (Re)introduced concept of grouped row bindings
* Improved performance of collection flush processing
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: 59ef8af156c6ba1b0abaaf73faa5fb4314a62d68
https://github.com/hibernate/hibernate-orm/commit/59ef8af156c6ba1b0abaaf7...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M design/collection-flush-processing-benchmark-results.adoc
M design/collection-flush-processing-spec.adoc
M
hibernate-core/src/jmh/java/org/hibernate/action/queue/CollectionFlushProcessingBenchmark.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/CollectionMutationPreparer.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/BasicCollectionDecomposer.java
A
hibernate-core/src/main/java/org/hibernate/action/queue/internal/decompose/collection/CollectionRowCompaction.java
M
hibernate-core/src/main/java/org/hibernate/action/queue/spi/bind/GroupedRowBindPlan.java
M hibernate-core/src/main/java/org/hibernate/cascade/internal/Cascade.java
M hibernate-core/src/main/java/org/hibernate/collection/spi/CollectionChangeSet.java
M
hibernate-core/src/main/java/org/hibernate/collection/spi/LegacyCompatibleCollectionMutationInterpreter.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/CollectionMutationCompletionTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/CollectionRowCompactionTest.java
A
hibernate-core/src/test/java/org/hibernate/action/queue/internal/decompose/collection/GroupedCollectionInsertBindPlanTest.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/exec/BatchingExecutionMonitorTest.java
M
hibernate-core/src/test/java/org/hibernate/action/queue/internal/exec/CollectionMutationExecutorCompletionTest.java
A
hibernate-core/src/test/java/org/hibernate/cascade/internal/CascadeCollectionDeltaOrphanTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/annotations/collectionelement/OnDeleteCascadeToElementCollectionTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionInterpretationQueueExecutionTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CollectionMutationInterpreterContractTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/collection/delta/CustomCollectionMutationInterpreterTest.java
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/AbstractCollectionEventTest.java
A
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/CrossCollectionListenerMutationTest.java
M migration-guide.adoc
Log Message:
-----------
HHH-20766 - Improve collection flush handling
* Compact homogeneous collection rows into shared operation templates and row bindings
* Preserve per-row binding, result checking and mutation completion when compaction is not
safe
* Avoid repeated collection inspection during graph planning
* Complete collection flush acceptance coverage
Signed-off-by: Steve Ebersole <steve(a)hibernate.org>
Commit: fef2379f0ce42a4964378d43f96d60858f205a7a
https://github.com/hibernate/hibernate-orm/commit/fef2379f0ce42a4964378d4...
Author: Steve Ebersole <steve(a)hibernate.org>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M
hibernate-core/src/test/java/org/hibernate/orm/test/event/collection/CrossCollectionListenerMutationTest.java
Log Message:
-----------
HHH-20766 - Improve collection flush handling
Compare:
https://github.com/hibernate/hibernate-orm/compare/fbde040b2681...fef2379...
To unsubscribe from these emails, change your notification settings at
https://github.com/hibernate/hibernate-orm/settings/notifications