diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/AbstractPersistentCollection.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/AbstractPersistentCollection.java index a678d294aa3e..006856e1f377 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/AbstractPersistentCollection.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/AbstractPersistentCollection.java @@ -867,14 +867,14 @@ public final boolean hasQueuedOperations() { } @Override - public final Iterator queuedAdditionIterator() { + public final Iterator queuedAdditionIterator() { if ( hasQueuedOperations() ) { return new Iterator<>() { private int index; @Override - public E next() { - return operationQueue.get( index++ ).getAddedInstance(); + public Object next() { + return operationQueue.get( index++ ).getAddedEntry(); } @Override @@ -1249,6 +1249,10 @@ protected interface DelayedOperation { E getAddedInstance(); + default Object getAddedEntry() { + return getAddedInstance(); + } + E getOrphan(); } diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java index 80326021ddf5..22c3d7134a29 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentCollection.java @@ -399,7 +399,7 @@ default boolean needsUpdating( * * @return The iterator */ - Iterator queuedAdditionIterator(); + Iterator queuedAdditionIterator(); /** * Get the "queued" orphans diff --git a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java index 1e4edb9bd44c..4e0f4bb840e5 100644 --- a/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java +++ b/hibernate-core/src/main/java/org/hibernate/collection/spi/PersistentMap.java @@ -539,6 +539,11 @@ protected AbstractMapValueDelayedOperation(K index, E addedValue, E orphan) { protected final K getIndex() { return index; } + + @Override + public Object getAddedEntry() { + return Map.entry( getIndex(), getAddedInstance() ); + } } final class Put extends AbstractMapValueDelayedOperation {