HHH-14877 - FetchMode.SUBSELECT ignored

- fixed Oracle errors related to follow-on locking
This commit is contained in:
Steve Ebersole 2021-10-20 11:05:25 -05:00
parent 653de50aa5
commit 96c0b04658
2 changed files with 10 additions and 12 deletions

View File

@ -34,10 +34,6 @@ public interface ExecutionContext {
Callback getCallback();
default void invokeAfterLoadActions(SharedSessionContractImplementor session, Object entity, Loadable persister) {
// No-op because by default there is no callback
}
default String getQueryIdentifier(String sql) {
return null;
}

View File

@ -21,6 +21,7 @@ import org.hibernate.event.spi.PostLoadEvent;
import org.hibernate.event.spi.PostLoadEventListener;
import org.hibernate.event.spi.PreLoadEvent;
import org.hibernate.persister.entity.Loadable;
import org.hibernate.sql.exec.spi.Callback;
import org.hibernate.sql.results.graph.Initializer;
import org.hibernate.sql.results.graph.collection.internal.ArrayInitializer;
import org.hibernate.query.spi.QueryOptions;
@ -190,16 +191,17 @@ public class JdbcValuesSourceProcessingStateStandardImpl implements JdbcValuesSo
postLoadEvent.setEntity( loadingEntityEntry.getEntityInstance() )
.setId( entityKey.getIdentifier() )
.setPersister( loadingEntityEntry.getDescriptor() );
for ( PostLoadEventListener listener : listenerGroup.listeners() ) {
listener.onPostLoad( postLoadEvent );
}
listenerGroup.fireEventOnEachListener( postLoadEvent, PostLoadEventListener::onPostLoad );
}
executionContext.invokeAfterLoadActions(
getSession(),
loadingEntityEntry.getEntityInstance(),
(Loadable) loadingEntityEntry.getDescriptor()
);
final Callback callback = executionContext.getCallback();
if ( callback != null ) {
callback.invokeAfterLoadActions(
getSession(),
loadingEntityEntry.getEntityInstance(),
(Loadable) loadingEntityEntry.getDescriptor()
);
}
}
);
loadingEntityMap = null;