Skip to content

Commit cfc80ba

Browse files
committed
get rid of JdbcExecHelper
see #9906
1 parent d702412 commit cfc80ba

File tree

2 files changed

+18
-51
lines changed

2 files changed

+18
-51
lines changed

hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcExecHelper.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

hibernate-core/src/main/java/org/hibernate/sql/exec/internal/JdbcSelectExecutorStandardImpl.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,15 @@
99
import java.util.concurrent.TimeUnit;
1010

1111
import org.hibernate.CacheMode;
12+
import org.hibernate.SharedSessionContract;
1213
import org.hibernate.cache.spi.QueryKey;
1314
import org.hibernate.cache.spi.QueryResultsCache;
1415
import org.hibernate.engine.spi.PersistenceContext;
1516
import org.hibernate.engine.spi.SessionFactoryImplementor;
1617
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1718
import org.hibernate.internal.util.collections.ArrayHelper;
1819
import org.hibernate.query.TupleTransformer;
20+
import org.hibernate.query.spi.QueryOptions;
1921
import org.hibernate.sql.exec.SqlExecLogger;
2022
import org.hibernate.sql.exec.spi.ExecutionContext;
2123
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
@@ -45,6 +47,8 @@
4547
import org.hibernate.type.descriptor.java.JavaType;
4648
import org.hibernate.type.spi.TypeConfiguration;
4749

50+
import static org.hibernate.internal.util.NullnessHelper.coalesceSuppliedValues;
51+
4852
/**
4953
* Standard JdbcSelectExecutor implementation used by Hibernate,
5054
* through {@link JdbcSelectExecutorStandardImpl#INSTANCE}
@@ -258,18 +262,17 @@ private JdbcValues resolveJdbcValuesSource(
258262
final SessionFactoryImplementor factory = session.getFactory();
259263
final boolean queryCacheEnabled = factory.getSessionFactoryOptions().isQueryCacheEnabled();
260264

261-
final List<?> cachedResults;
262-
final CacheMode cacheMode = JdbcExecHelper.resolveCacheMode( executionContext );
263-
265+
final CacheMode cacheMode = resolveCacheMode( executionContext );
264266
final JdbcValuesMappingProducer mappingProducer = jdbcSelect.getJdbcValuesMappingProducer();
265267
final boolean cacheable = queryCacheEnabled && canBeCached
266268
&& executionContext.getQueryOptions().isResultCachingEnabled() == Boolean.TRUE;
267-
final QueryKey queryResultsCacheKey;
268269

270+
final QueryKey queryResultsCacheKey;
271+
final List<?> cachedResults;
269272
if ( cacheable && cacheMode.isGetEnabled() ) {
270273
SqlExecLogger.SQL_EXEC_LOGGER.debugf( "Reading Query result cache data per CacheMode#isGetEnabled [%s]", cacheMode.name() );
271274
final Set<String> querySpaces = jdbcSelect.getAffectedTableNames();
272-
if ( querySpaces == null || querySpaces.size() == 0 ) {
275+
if ( querySpaces == null || querySpaces.isEmpty() ) {
273276
SqlExecLogger.SQL_EXEC_LOGGER.tracef( "Unexpected querySpaces is empty" );
274277
}
275278
else {
@@ -368,6 +371,16 @@ private JdbcValues resolveJdbcValuesSource(
368371
}
369372
}
370373

374+
private static CacheMode resolveCacheMode(ExecutionContext executionContext) {
375+
final QueryOptions queryOptions = executionContext.getQueryOptions();
376+
final SharedSessionContract session = executionContext.getSession();
377+
return coalesceSuppliedValues(
378+
() -> queryOptions == null ? null : queryOptions.getCacheMode(),
379+
session::getCacheMode,
380+
() -> CacheMode.NORMAL
381+
);
382+
}
383+
371384
static class CapturingJdbcValuesMetadata implements JdbcValuesMetadata {
372385
private final ResultSetAccess resultSetAccess;
373386
private String[] columnNames;

0 commit comments

Comments
 (0)