diff --git a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcSelectExecutorStandardImpl.java b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcSelectExecutorStandardImpl.java index 0ea11361173e..6cf7d1f81bfa 100644 --- a/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcSelectExecutorStandardImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcSelectExecutorStandardImpl.java @@ -296,7 +296,7 @@ private JdbcValues resolveJdbcValuesSource( final QueryKey queryResultsCacheKey; - if ( queryCacheEnabled && cacheMode.isGetEnabled() ) { + if ( queryCacheEnabled && cacheMode.isGetEnabled() && canBeCached ) { SqlExecLogger.INSTANCE.debugf( "Reading Query result cache data per CacheMode#isGetEnabled [%s]", cacheMode.name() ); final QueryResultsCache queryCache = factory @@ -348,7 +348,7 @@ private JdbcValues resolveJdbcValuesSource( cacheMode.name() ); cachedResults = null; - if ( queryCacheEnabled ) { + if ( queryCacheEnabled && canBeCached ) { queryResultsCacheKey = QueryKey.from( jdbcSelect.getSql(), executionContext.getQueryOptions().getLimit(), @@ -364,7 +364,7 @@ private JdbcValues resolveJdbcValuesSource( if ( cachedResults == null ) { return new JdbcValuesResultSetImpl( resultSetAccess, - canBeCached && queryCacheEnabled ? queryResultsCacheKey : null, + queryResultsCacheKey, queryIdentifier, executionContext.getQueryOptions(), jdbcValuesMapping,