Skip to content

Commit d13ba8b

Browse files
committed
Fix dependencies
1 parent 5b92008 commit d13ba8b

File tree

1 file changed

+40
-23
lines changed

1 file changed

+40
-23
lines changed

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

+40-23
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@
1212
import java.util.concurrent.TimeUnit;
1313

1414
import org.hibernate.CacheMode;
15+
import org.hibernate.SharedSessionContract;
1516
import org.hibernate.cache.spi.QueryKey;
1617
import org.hibernate.cache.spi.QueryResultsCache;
18+
import org.hibernate.engine.internal.ReactivePersistenceContextAdapter;
1719
import org.hibernate.engine.spi.PersistenceContext;
1820
import org.hibernate.engine.spi.SessionFactoryImplementor;
1921
import org.hibernate.engine.spi.SharedSessionContractImplementor;
2022
import org.hibernate.internal.util.collections.ArrayHelper;
2123
import org.hibernate.query.TupleTransformer;
22-
import org.hibernate.engine.internal.ReactivePersistenceContextAdapter;
24+
import org.hibernate.query.spi.QueryOptions;
2325
import org.hibernate.reactive.sql.exec.spi.ReactiveRowProcessingState;
2426
import org.hibernate.reactive.sql.exec.spi.ReactiveSelectExecutor;
2527
import org.hibernate.reactive.sql.exec.spi.ReactiveValuesResultSet;
@@ -31,7 +33,6 @@
3133
import org.hibernate.reactive.sql.results.spi.ReactiveRowReader;
3234
import org.hibernate.reactive.sql.results.spi.ReactiveValuesMappingProducer;
3335
import org.hibernate.sql.exec.SqlExecLogger;
34-
import org.hibernate.sql.exec.internal.JdbcExecHelper;
3536
import org.hibernate.sql.exec.internal.StandardStatementCreator;
3637
import org.hibernate.sql.exec.spi.ExecutionContext;
3738
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
@@ -50,6 +51,8 @@
5051
import org.hibernate.type.descriptor.java.JavaType;
5152
import org.hibernate.type.spi.TypeConfiguration;
5253

54+
import static org.hibernate.internal.util.NullnessHelper.coalesceSuppliedValues;
55+
5356
/**
5457
* @see org.hibernate.sql.exec.internal.JdbcSelectExecutorStandardImpl
5558
*/
@@ -254,26 +257,26 @@ private static <R> RowTransformer<R> rowTransformer(
254257
ExecutionContext executionContext,
255258
RowTransformer<R> transformer,
256259
ReactiveValuesResultSet jdbcValues) {
257-
RowTransformer<R> rowTransformer = transformer;
258-
if ( rowTransformer == null ) {
259-
@SuppressWarnings("unchecked") final TupleTransformer<R> tupleTransformer = (TupleTransformer<R>) executionContext
260-
.getQueryOptions()
261-
.getTupleTransformer();
262-
263-
if ( tupleTransformer == null ) {
264-
rowTransformer = RowTransformerStandardImpl.instance();
265-
}
266-
else {
267-
final List<DomainResult<?>> domainResults = jdbcValues.getValuesMapping()
268-
.getDomainResults();
269-
final String[] aliases = new String[domainResults.size()];
270-
for ( int i = 0; i < domainResults.size(); i++ ) {
271-
aliases[i] = domainResults.get( i ).getResultVariable();
272-
}
273-
rowTransformer = new RowTransformerTupleTransformerAdapter<>( aliases, tupleTransformer );
274-
}
260+
if ( transformer != null ) {
261+
return transformer;
262+
}
263+
264+
@SuppressWarnings("unchecked")
265+
final TupleTransformer<R> tupleTransformer = (TupleTransformer<R>) executionContext
266+
.getQueryOptions()
267+
.getTupleTransformer();
268+
269+
if ( tupleTransformer == null ) {
270+
return RowTransformerStandardImpl.instance();
275271
}
276-
return rowTransformer;
272+
273+
final List<DomainResult<?>> domainResults = jdbcValues
274+
.getValuesMapping().getDomainResults();
275+
final String[] aliases = new String[domainResults.size()];
276+
for ( int i = 0; i < domainResults.size(); i++ ) {
277+
aliases[i] = domainResults.get( i ).getResultVariable();
278+
}
279+
return new RowTransformerTupleTransformerAdapter<>( aliases, tupleTransformer );
277280
}
278281

279282
public CompletionStage<ReactiveValuesResultSet> resolveJdbcValuesSource(
@@ -286,13 +289,13 @@ public CompletionStage<ReactiveValuesResultSet> resolveJdbcValuesSource(
286289
final SessionFactoryImplementor factory = session.getFactory();
287290
final boolean queryCacheEnabled = factory.getSessionFactoryOptions().isQueryCacheEnabled();
288291

289-
final List<?> cachedResults;
290-
final CacheMode cacheMode = JdbcExecHelper.resolveCacheMode( executionContext );
292+
final CacheMode cacheMode = resolveCacheMode( executionContext );
291293
final boolean cacheable = queryCacheEnabled
292294
&& canBeCached
293295
&& executionContext.getQueryOptions().isResultCachingEnabled() == Boolean.TRUE;
294296
final QueryKey queryResultsCacheKey;
295297

298+
final List<?> cachedResults;
296299
if ( cacheable && cacheMode.isGetEnabled() ) {
297300
SqlExecLogger.SQL_EXEC_LOGGER.debugf( "Reading Query result cache data per CacheMode#isGetEnabled [%s]", cacheMode.name() );
298301
final Set<String> querySpaces = jdbcSelect.getAffectedTableNames();
@@ -419,6 +422,20 @@ public CompletionStage<ReactiveValuesResultSet> resolveJdbcValuesSource(
419422
}
420423
}
421424

425+
426+
/**
427+
* Copied from Hibernate ORM
428+
*/
429+
private static CacheMode resolveCacheMode(ExecutionContext executionContext) {
430+
final QueryOptions queryOptions = executionContext.getQueryOptions();
431+
final SharedSessionContract session = executionContext.getSession();
432+
return coalesceSuppliedValues(
433+
() -> queryOptions == null ? null : queryOptions.getCacheMode(),
434+
session::getCacheMode,
435+
() -> CacheMode.NORMAL
436+
);
437+
}
438+
422439
/**
423440
* see {@link CachedJdbcValuesMetadata}
424441
*/

0 commit comments

Comments
 (0)