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 5342e5c7f978..72b810ddaf22 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 @@ -845,14 +845,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 @@ -1227,6 +1227,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 20895284b97a..50174696bae1 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 @@ -388,7 +388,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 62711cba5b2b..9f1e713269e2 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 @@ -526,6 +526,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 {