Skip to content

Commit ca8ffa1

Browse files
committed
Migration from List<JdbcParameter> to JdbcParametersList types
1 parent efdbffb commit ca8ffa1

20 files changed

+73
-75
lines changed

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/DatabaseSnapshotExecutor.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@
4040
import org.hibernate.sql.exec.internal.JdbcParameterImpl;
4141
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
4242
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
43+
import org.hibernate.sql.exec.spi.JdbcParametersList;
4344
import org.hibernate.sql.results.graph.DomainResult;
4445
import org.hibernate.sql.results.graph.FetchParent;
4546
import org.hibernate.sql.results.graph.internal.ImmutableFetchList;
@@ -57,15 +58,14 @@ class DatabaseSnapshotExecutor {
5758
private final EntityMappingType entityDescriptor;
5859

5960
private final JdbcOperationQuerySelect jdbcSelect;
60-
private final List<JdbcParameter> jdbcParameters;
61+
private final JdbcParametersList jdbcParameters;
6162

6263
DatabaseSnapshotExecutor(
6364
EntityMappingType entityDescriptor,
6465
SessionFactoryImplementor sessionFactory) {
6566
this.entityDescriptor = entityDescriptor;
66-
this.jdbcParameters = new ArrayList<>(
67-
entityDescriptor.getIdentifierMapping().getJdbcTypeCount()
68-
);
67+
JdbcParametersList.Builder jdbcParametersBuilder = JdbcParametersList.newBuilder(
68+
entityDescriptor.getIdentifierMapping().getJdbcTypeCount() );
6969

7070
final QuerySpec rootQuerySpec = new QuerySpec( true );
7171

@@ -118,7 +118,7 @@ class DatabaseSnapshotExecutor {
118118
);
119119

120120
final JdbcParameter jdbcParameter = new JdbcParameterImpl( selection.getJdbcMapping() );
121-
jdbcParameters.add( jdbcParameter );
121+
jdbcParametersBuilder.add( jdbcParameter );
122122

123123
final ColumnReference columnReference = (ColumnReference) sqlExpressionResolver
124124
.resolveSqlExpression( tableReference, selection );
@@ -132,7 +132,7 @@ class DatabaseSnapshotExecutor {
132132
);
133133
}
134134
);
135-
135+
this.jdbcParameters = jdbcParametersBuilder.build();
136136

137137
entityDescriptor.forEachAttributeMapping(
138138
attributeMapping -> {

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveCollectionBatchLoaderArrayParam.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package org.hibernate.reactive.loader.ast.internal;
77

88
import java.lang.reflect.Array;
9-
import java.util.Collections;
109
import java.util.concurrent.CompletionStage;
1110

1211
import org.hibernate.LockOptions;
@@ -33,6 +32,7 @@
3332
import org.hibernate.sql.exec.internal.JdbcParameterImpl;
3433
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
3534
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
35+
import org.hibernate.sql.exec.spi.JdbcParametersList;
3636
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
3737
import org.hibernate.type.BasicType;
3838

@@ -145,7 +145,7 @@ private CompletionStage<Void> initializeKeys(Object[] keysToInitialize, SharedSe
145145
final SubselectFetch.RegistrationHandler subSelectFetchableKeysHandler = SubselectFetch.createRegistrationHandler(
146146
session.getPersistenceContext().getBatchFetchQueue(),
147147
sqlSelect,
148-
Collections.singletonList( jdbcParameter ),
148+
JdbcParametersList.singleton( jdbcParameter ),
149149
jdbcParameterBindings
150150
);
151151

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveCollectionBatchLoaderInPredicate.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package org.hibernate.reactive.loader.ast.internal;
77

88
import java.util.ArrayList;
9-
import java.util.List;
109
import java.util.concurrent.CompletionStage;
1110

1211
import org.hibernate.LockOptions;
@@ -22,10 +21,10 @@
2221
import org.hibernate.loader.ast.internal.LoaderSelectBuilder;
2322
import org.hibernate.metamodel.mapping.PluralAttributeMapping;
2423
import org.hibernate.query.spi.QueryOptions;
25-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
2624
import org.hibernate.sql.ast.tree.select.SelectStatement;
2725
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
2826
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
27+
import org.hibernate.sql.exec.spi.JdbcParametersList;
2928

3029
import static org.hibernate.loader.ast.internal.MultiKeyLoadLogging.MULTI_KEY_LOAD_DEBUG_ENABLED;
3130
import static org.hibernate.loader.ast.internal.MultiKeyLoadLogging.MULTI_KEY_LOAD_LOGGER;
@@ -37,7 +36,7 @@ public class ReactiveCollectionBatchLoaderInPredicate extends ReactiveAbstractCo
3736

3837
private final int keyColumnCount;
3938
private final int sqlBatchSize;
40-
private final List<JdbcParameter> jdbcParameters;
39+
private final JdbcParametersList jdbcParameters;
4140
private final SelectStatement sqlAst;
4241
private final JdbcOperationQuerySelect jdbcSelect;
4342

@@ -64,7 +63,7 @@ public ReactiveCollectionBatchLoaderInPredicate(
6463
);
6564
}
6665

67-
this.jdbcParameters = new ArrayList<>();
66+
final JdbcParametersList.Builder jdbcParametersBuilder = JdbcParametersList.newBuilder();
6867
this.sqlAst = LoaderSelectBuilder.createSelect(
6968
attributeMapping,
7069
null,
@@ -73,9 +72,10 @@ public ReactiveCollectionBatchLoaderInPredicate(
7372
sqlBatchSize,
7473
influencers,
7574
LockOptions.NONE,
76-
jdbcParameters::add,
75+
jdbcParametersBuilder::add,
7776
sessionFactory
7877
);
78+
this.jdbcParameters = jdbcParametersBuilder.build();
7979
assert this.jdbcParameters.size() == this.sqlBatchSize * this.keyColumnCount;
8080

8181
this.jdbcSelect = sessionFactory.getJdbcServices()

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveCollectionLoaderSingleKey.java

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
*/
66
package org.hibernate.reactive.loader.ast.internal;
77

8-
import java.util.ArrayList;
9-
import java.util.List;
108
import java.util.concurrent.CompletionStage;
119

1210
import org.hibernate.LockOptions;
@@ -27,12 +25,12 @@
2725
import org.hibernate.reactive.sql.exec.internal.StandardReactiveSelectExecutor;
2826
import org.hibernate.reactive.sql.results.spi.ReactiveListResultsConsumer;
2927
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
30-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
3128
import org.hibernate.sql.ast.tree.select.SelectStatement;
3229
import org.hibernate.sql.exec.internal.BaseExecutionContext;
3330
import org.hibernate.sql.exec.internal.JdbcParameterBindingsImpl;
3431
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
3532
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
33+
import org.hibernate.sql.exec.spi.JdbcParametersList;
3634
import org.hibernate.sql.results.graph.entity.LoadingEntityEntry;
3735
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
3836

@@ -46,14 +44,14 @@ public class ReactiveCollectionLoaderSingleKey implements ReactiveCollectionLoad
4644
private final int keyJdbcCount;
4745

4846
private final SelectStatement sqlAst;
49-
private final List<JdbcParameter> jdbcParameters;
47+
private final JdbcParametersList jdbcParameters;
5048

5149
public ReactiveCollectionLoaderSingleKey(PluralAttributeMapping attributeMapping, LoadQueryInfluencers influencers, SessionFactoryImplementor sessionFactory) {
5250
// PluralAttributeMappingImpl is the only implementation available at the moment in ORM
5351
final PluralAttributeMapping reactivePluralAttributeMapping = new ReactivePluralAttributeMapping( (PluralAttributeMappingImpl) attributeMapping );
5452
this.attributeMapping = reactivePluralAttributeMapping;
5553
this.keyJdbcCount = reactivePluralAttributeMapping.getKeyDescriptor().getJdbcTypeCount();
56-
this.jdbcParameters = new ArrayList<>();
54+
final JdbcParametersList.Builder jdbcParametersBuilder = JdbcParametersList.newBuilder();
5755
this.sqlAst = LoaderSelectBuilder.createSelect(
5856
reactivePluralAttributeMapping,
5957
null,
@@ -62,9 +60,10 @@ public ReactiveCollectionLoaderSingleKey(PluralAttributeMapping attributeMapping
6260
1,
6361
influencers,
6462
LockOptions.NONE,
65-
jdbcParameters::add,
63+
jdbcParametersBuilder::add,
6664
sessionFactory
6765
);
66+
this.jdbcParameters = jdbcParametersBuilder.build();
6867
}
6968

7069
@Override
@@ -80,7 +79,7 @@ public SelectStatement getSqlAst() {
8079
return sqlAst;
8180
}
8281

83-
public List<JdbcParameter> getJdbcParameters() {
82+
public JdbcParametersList getJdbcParameters() {
8483
return jdbcParameters;
8584
}
8685

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveEntityBatchLoaderInPredicate.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@
2424
import org.hibernate.metamodel.mapping.EntityIdentifierMapping;
2525
import org.hibernate.metamodel.mapping.EntityMappingType;
2626
import org.hibernate.query.spi.QueryOptions;
27-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
2827
import org.hibernate.sql.ast.tree.select.SelectStatement;
2928
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
3029
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
30+
import org.hibernate.sql.exec.spi.JdbcParametersList;
3131

3232
import static org.hibernate.internal.util.collections.CollectionHelper.arrayList;
3333
import static org.hibernate.loader.ast.internal.MultiKeyLoadLogging.MULTI_KEY_LOAD_DEBUG_ENABLED;
@@ -42,7 +42,7 @@ public class ReactiveEntityBatchLoaderInPredicate<T> extends ReactiveSingleIdEnt
4242
private final int domainBatchSize;
4343
private final int sqlBatchSize;
4444

45-
private List<JdbcParameter> jdbcParameters;
45+
private JdbcParametersList jdbcParameters;
4646
private SelectStatement sqlAst;
4747
private JdbcOperationQuerySelect jdbcSelectOperation;
4848

@@ -185,7 +185,7 @@ public void prepare() {
185185

186186
final int expectedNumberOfParameters = identifierMapping.getJdbcTypeCount() * sqlBatchSize;
187187

188-
jdbcParameters = arrayList( expectedNumberOfParameters );
188+
final JdbcParametersList.Builder parametersListBuilder = JdbcParametersList.newBuilder( expectedNumberOfParameters );
189189
sqlAst = LoaderSelectBuilder.createSelect(
190190
getLoadable(),
191191
// null here means to select everything
@@ -195,9 +195,10 @@ public void prepare() {
195195
sqlBatchSize,
196196
LoadQueryInfluencers.NONE,
197197
LockOptions.NONE,
198-
jdbcParameters::add,
198+
parametersListBuilder::add,
199199
sessionFactory
200200
);
201+
final JdbcParametersList jdbcParameters = parametersListBuilder.build();
201202
assert jdbcParameters.size() == expectedNumberOfParameters;
202203

203204
jdbcSelectOperation = sessionFactory.getJdbcServices()

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveLoaderHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
package org.hibernate.reactive.loader.ast.internal;
77

88
import java.lang.reflect.Array;
9-
import java.util.Collections;
109
import java.util.List;
1110
import java.util.concurrent.CompletionStage;
1211

@@ -22,6 +21,7 @@
2221
import org.hibernate.sql.exec.internal.JdbcParameterBindingsImpl;
2322
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
2423
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
24+
import org.hibernate.sql.exec.spi.JdbcParametersList;
2525
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
2626

2727
import static java.util.Objects.requireNonNull;
@@ -73,7 +73,7 @@ public static <R, K> CompletionStage<List<R>> loadByArrayParameter(
7373
final SubselectFetch.RegistrationHandler subSelectFetchableKeysHandler = SubselectFetch.createRegistrationHandler(
7474
session.getPersistenceContext().getBatchFetchQueue(),
7575
sqlAst,
76-
Collections.singletonList( jdbcParameter ),
76+
JdbcParametersList.singleton( jdbcParameter ),
7777
jdbcParameterBindings
7878
);
7979

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveMultiIdEntityLoaderArrayParam.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import java.lang.reflect.Array;
99
import java.util.ArrayList;
1010
import java.util.Collection;
11-
import java.util.Collections;
1211
import java.util.List;
1312
import java.util.concurrent.CompletionStage;
1413

@@ -44,6 +43,7 @@
4443
import org.hibernate.sql.exec.internal.JdbcParameterImpl;
4544
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
4645
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
46+
import org.hibernate.sql.exec.spi.JdbcParametersList;
4747
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
4848
import org.hibernate.type.BasicType;
4949
import org.hibernate.type.BasicTypeRegistry;
@@ -189,7 +189,7 @@ protected <K> CompletionStage<List<E>> performOrderedMultiLoad(
189189
final SubselectFetch.RegistrationHandler subSelectFetchableKeysHandler = SubselectFetch.createRegistrationHandler(
190190
batchFetchQueue,
191191
sqlAst,
192-
Collections.singletonList( jdbcParameter ),
192+
JdbcParametersList.singleton( jdbcParameter ),
193193
jdbcParameterBindings
194194
);
195195

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveMultiIdEntityLoaderStandard.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,11 @@
4343
import org.hibernate.reactive.sql.results.spi.ReactiveListResultsConsumer;
4444
import org.hibernate.reactive.util.impl.CompletionStages;
4545
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
46-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
4746
import org.hibernate.sql.ast.tree.select.SelectStatement;
4847
import org.hibernate.sql.exec.internal.JdbcParameterBindingsImpl;
4948
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
5049
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
50+
import org.hibernate.sql.exec.spi.JdbcParametersList;
5151
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
5252

5353
import static org.hibernate.reactive.util.impl.CompletionStages.completedFuture;
@@ -221,8 +221,7 @@ private CompletionStage<List<T>> loadEntitiesById(
221221
LOG.tracef( "#loadEntitiesById(`%s`, `%s`, ..)", getEntityDescriptor().getEntityName(), numberOfIdsInBatch );
222222
}
223223

224-
final List<JdbcParameter> jdbcParameters = new ArrayList<>( numberOfIdsInBatch * idJdbcTypeCount );
225-
224+
final JdbcParametersList.Builder jdbcParametersListBuilder = JdbcParametersList.newBuilder( numberOfIdsInBatch * idJdbcTypeCount );
226225
final SelectStatement sqlAst = LoaderSelectBuilder.createSelect(
227226
getLoadable(),
228227
// null here means to select everything
@@ -232,9 +231,10 @@ private CompletionStage<List<T>> loadEntitiesById(
232231
numberOfIdsInBatch,
233232
session.getLoadQueryInfluencers(),
234233
lockOptions,
235-
jdbcParameters::add,
234+
jdbcParametersListBuilder::add,
236235
getSessionFactory()
237236
);
237+
final JdbcParametersList jdbcParameters = jdbcParametersListBuilder.build();
238238

239239
final JdbcServices jdbcServices = getSessionFactory().getJdbcServices();
240240
final JdbcEnvironment jdbcEnvironment = jdbcServices.getJdbcEnvironment();

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveMultiKeyLoadChunker.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,18 @@
55
*/
66
package org.hibernate.reactive.loader.ast.internal;
77

8-
import java.util.List;
98
import java.util.concurrent.CompletionStage;
109

1110
import org.hibernate.engine.spi.SharedSessionContractImplementor;
1211
import org.hibernate.metamodel.mapping.Bindable;
1312
import org.hibernate.reactive.sql.exec.internal.StandardReactiveSelectExecutor;
1413
import org.hibernate.reactive.sql.results.spi.ReactiveListResultsConsumer;
15-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
1614
import org.hibernate.sql.ast.tree.select.SelectStatement;
1715
import org.hibernate.sql.exec.internal.JdbcParameterBindingsImpl;
1816
import org.hibernate.sql.exec.spi.ExecutionContext;
1917
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
2018
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
19+
import org.hibernate.sql.exec.spi.JdbcParametersList;
2120
import org.hibernate.sql.results.internal.RowTransformerStandardImpl;
2221

2322
import static org.hibernate.reactive.util.impl.CompletionStages.voidFuture;
@@ -53,15 +52,15 @@ interface ChunkBoundaryListener {
5352
private final int keyColumnCount;
5453
private final Bindable bindable;
5554

56-
private final List<JdbcParameter> jdbcParameters;
55+
private final JdbcParametersList jdbcParameters;
5756
private final SelectStatement sqlAst;
5857
private final JdbcOperationQuerySelect jdbcSelect;
5958

6059
public ReactiveMultiKeyLoadChunker(
6160
int chunkSize,
6261
int keyColumnCount,
6362
Bindable bindable,
64-
List<JdbcParameter> jdbcParameters,
63+
JdbcParametersList jdbcParameters,
6564
SelectStatement sqlAst,
6665
JdbcOperationQuerySelect jdbcSelect) {
6766
this.chunkSize = chunkSize;

hibernate-reactive-core/src/main/java/org/hibernate/reactive/loader/ast/internal/ReactiveNaturalIdLoaderDelegate.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
*/
66
package org.hibernate.reactive.loader.ast.internal;
77

8-
import java.util.ArrayList;
9-
import java.util.List;
108
import java.util.concurrent.CompletionStage;
119
import java.util.function.BiConsumer;
1210
import java.util.function.BiFunction;
@@ -36,7 +34,6 @@
3634
import org.hibernate.sql.ast.SqlAstTranslatorFactory;
3735
import org.hibernate.sql.ast.spi.SimpleFromClauseAccessImpl;
3836
import org.hibernate.sql.ast.spi.SqlAliasBaseManager;
39-
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
4037
import org.hibernate.sql.ast.tree.from.TableGroup;
4138
import org.hibernate.sql.ast.tree.select.QuerySpec;
4239
import org.hibernate.sql.ast.tree.select.SelectStatement;
@@ -46,6 +43,7 @@
4643
import org.hibernate.sql.exec.spi.Callback;
4744
import org.hibernate.sql.exec.spi.JdbcOperationQuerySelect;
4845
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
46+
import org.hibernate.sql.exec.spi.JdbcParametersList;
4947
import org.hibernate.sql.results.graph.DomainResult;
5048
import org.hibernate.sql.results.graph.Fetch;
5149
import org.hibernate.sql.results.graph.FetchParent;
@@ -148,7 +146,7 @@ public CompletionStage<Object> resolveNaturalIdToId(
148146
public CompletionStage<Object> resolveIdToNaturalId(Object id, SharedSessionContractImplementor session) {
149147
final SessionFactoryImplementor sessionFactory = session.getFactory();
150148

151-
final List<JdbcParameter> jdbcParameters = new ArrayList<>();
149+
final JdbcParametersList.Builder jdbcParametersListBuilder = JdbcParametersList.newBuilder();
152150
final SelectStatement sqlSelect = LoaderSelectBuilder.createSelect(
153151
entityDescriptor(),
154152
singletonList( naturalIdMapping() ),
@@ -157,9 +155,10 @@ public CompletionStage<Object> resolveIdToNaturalId(Object id, SharedSessionCont
157155
1,
158156
session.getLoadQueryInfluencers(),
159157
LockOptions.NONE,
160-
jdbcParameters::add,
158+
jdbcParametersListBuilder::add,
161159
sessionFactory
162160
);
161+
final JdbcParametersList jdbcParameters = jdbcParametersListBuilder.build();
163162

164163
final JdbcServices jdbcServices = sessionFactory.getJdbcServices();
165164
final JdbcEnvironment jdbcEnvironment = jdbcServices.getJdbcEnvironment();

0 commit comments

Comments
 (0)