Skip to content

Commit 062e395

Browse files
committed
misc cleanups to the query.internal package
1 parent f17dcb0 commit 062e395

17 files changed

+190
-200
lines changed

hibernate-core/src/main/java/org/hibernate/query/internal/FetchMementoHbmStandard.java

Lines changed: 19 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import org.hibernate.AssertionFailure;
1313
import org.hibernate.LockMode;
14-
import org.hibernate.metamodel.mapping.CollectionPart;
1514
import org.hibernate.metamodel.mapping.EntityMappingType;
1615
import org.hibernate.metamodel.mapping.PluralAttributeMapping;
1716
import org.hibernate.metamodel.mapping.internal.ToOneAttributeMapping;
@@ -110,41 +109,34 @@ private FetchBuilder resolve(
110109
dynamicFetchBuilder.getColumnAliases().toArray( new String[0] )
111110
);
112111
}
113-
else {
112+
else if ( fetchBuilder instanceof CompleteFetchBuilderEntityValuedModelPart completeFetchBuilder ) {
114113
resultBuilder.addIdColumnAliases(
115-
((CompleteFetchBuilderEntityValuedModelPart) fetchBuilder).getColumnAliases()
116-
.toArray( new String[0] )
114+
completeFetchBuilder.getColumnAliases().toArray( new String[0] )
117115
);
118116
}
117+
else {
118+
throw new AssertionFailure( "Unexpected fetch builder type" );
119+
}
119120
fetchBuilderMap.put(
120121
pluralAttributeMapping.getElementDescriptor(),
121122
fetchBuilder
122123
);
123124
}
124125
else if ( attrName.equals( "index" ) ) {
125-
final CollectionPart indexDescriptor = pluralAttributeMapping.getIndexDescriptor();
126+
final var indexDescriptor = pluralAttributeMapping.getIndexDescriptor();
126127
resultBuilder.addFetchBuilder( indexDescriptor, fetchBuilder );
127-
fetchBuilderMap.put(
128-
indexDescriptor,
129-
fetchBuilder
130-
);
128+
fetchBuilderMap.put( indexDescriptor, fetchBuilder );
131129
}
132130
else if ( attrName.startsWith( ELEMENT_PREFIX ) ) {
133-
final Fetchable attributeMapping = (Fetchable) partMappingType.findByPath(
134-
attrName.substring( ELEMENT_PREFIX_LENGTH ) );
131+
final var attributeMapping =
132+
(Fetchable) partMappingType.findByPath( attrName.substring( ELEMENT_PREFIX_LENGTH ) );
135133
resultBuilder.addFetchBuilder( attributeMapping, fetchBuilder );
136-
fetchBuilderMap.put(
137-
attributeMapping,
138-
fetchBuilder
139-
);
134+
fetchBuilderMap.put( attributeMapping, fetchBuilder );
140135
}
141136
else {
142-
final Fetchable attributeMapping = (Fetchable) partMappingType.findByPath( attrName );
137+
final var attributeMapping = (Fetchable) partMappingType.findByPath( attrName );
143138
resultBuilder.addFetchBuilder( attributeMapping, fetchBuilder );
144-
fetchBuilderMap.put(
145-
attributeMapping,
146-
fetchBuilder
147-
);
139+
fetchBuilderMap.put( attributeMapping, fetchBuilder );
148140
}
149141
}
150142
);
@@ -170,15 +162,13 @@ private FetchBuilder resolve(
170162
fetchMemento.resolve( this, querySpaceConsumer, context )
171163
)
172164
);
173-
final DynamicResultBuilderEntityStandard resultBuilder;
174-
resultBuilder = new DynamicResultBuilderEntityStandard(
175-
toOneAttributeMapping.getEntityMappingType(),
176-
tableAlias,
177-
navigablePath
178-
);
179-
fetchBuilderMap.forEach( (fetchable, fetchBuilder) ->
180-
resultBuilder.addFetchBuilder( fetchable, fetchBuilder )
181-
);
165+
final var resultBuilder =
166+
new DynamicResultBuilderEntityStandard(
167+
toOneAttributeMapping.getEntityMappingType(),
168+
tableAlias,
169+
navigablePath
170+
);
171+
fetchBuilderMap.forEach( resultBuilder::addFetchBuilder );
182172
return new DynamicFetchBuilderLegacy(
183173
tableAlias,
184174
ownerTableAlias,

hibernate-core/src/main/java/org/hibernate/query/internal/NamedObjectRepositoryImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ public void validateNamedQueries(QueryEngine queryEngine) {
307307

308308
@Override
309309
public Map<String, HibernateException> checkNamedQueries(QueryEngine queryEngine) {
310-
Map<String,HibernateException> errors = new HashMap<>();
310+
final Map<String,HibernateException> errors = new HashMap<>();
311311

312312
final var interpretationCache = queryEngine.getInterpretationCache();
313313
final var hqlTranslator = queryEngine.getHqlTranslator();

hibernate-core/src/main/java/org/hibernate/query/internal/NamedResultSetMappingMementoImpl.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,15 @@
44
*/
55
package org.hibernate.query.internal;
66

7-
import java.util.Collections;
87
import java.util.List;
98
import java.util.function.Consumer;
109

1110
import org.hibernate.query.named.NamedResultSetMappingMemento;
1211
import org.hibernate.query.named.ResultMemento;
1312
import org.hibernate.query.results.ResultSetMapping;
1413

14+
import static java.util.Collections.unmodifiableList;
15+
1516
/**
1617
* Standard {@link NamedResultSetMappingMemento} implementation
1718
*
@@ -34,7 +35,7 @@ public String getName() {
3435
}
3536

3637
public List<ResultMemento> getResultMementos() {
37-
return Collections.unmodifiableList( resultMementos );
38+
return unmodifiableList( resultMementos );
3839
}
3940

4041
@Override

hibernate-core/src/main/java/org/hibernate/query/internal/NullPrecedenceHelper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public static boolean isDefaultOrdering(
4747
* @return The recognized NullPrecedence, or {@code null}
4848
*/
4949
public static Nulls parse(String name) {
50-
for ( Nulls value : Nulls.values() ) {
50+
for ( var value : Nulls.values() ) {
5151
if ( value.name().equalsIgnoreCase( name ) ) {
5252
return value;
5353
}
@@ -64,7 +64,7 @@ public static Nulls parse(String name) {
6464
* @return The recognized NullPrecedence, or {@code defaultValue}.
6565
*/
6666
public static Nulls parse(String name, Nulls defaultValue) {
67-
final Nulls value = parse( name );
67+
final var value = parse( name );
6868
return value != null ? value : defaultValue;
6969
}
7070

hibernate-core/src/main/java/org/hibernate/query/internal/ParameterMetadataImpl.java

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
import java.util.ArrayList;
88
import java.util.Collection;
9-
import java.util.Collections;
109
import java.util.HashMap;
1110
import java.util.LinkedHashMap;
1211
import java.util.List;
@@ -32,8 +31,10 @@
3231
import org.checkerframework.checker.nullness.qual.Nullable;
3332

3433
import static java.util.Collections.emptyList;
34+
import static java.util.Collections.emptyMap;
3535
import static java.util.Collections.emptySet;
3636
import static java.util.Collections.unmodifiableSet;
37+
import static org.hibernate.internal.util.StringHelper.join;
3738
import static org.hibernate.internal.util.collections.CollectionHelper.isEmpty;
3839

3940
/**
@@ -53,10 +54,10 @@ public class ParameterMetadataImpl implements ParameterMetadataImplementor {
5354
private final @Nullable QueryParameterBindingsImpl queryParameterBindingsTemplate;
5455

5556
private ParameterMetadataImpl() {
56-
this.queryParameters = Collections.emptyMap();
57-
this.queryParametersByName = null;
58-
this.queryParametersByPosition = null;
59-
this.queryParameterBindingsTemplate = null;
57+
queryParameters = emptyMap();
58+
queryParametersByName = null;
59+
queryParametersByPosition = null;
60+
queryParameterBindingsTemplate = null;
6061
}
6162

6263
public ParameterMetadataImpl(Map<QueryParameterImplementor<?>, List<SqmParameter<?>>> queryParameters) {
@@ -67,13 +68,13 @@ public ParameterMetadataImpl(Map<QueryParameterImplementor<?>, List<SqmParameter
6768
// if we have any ordinal parameters, make sure the numbers
6869
// start with 1 and are contiguous
6970
for ( var queryParameter : queryParameters.keySet() ) {
70-
if ( queryParameter.getPosition() != null ) {
71+
if ( queryParameter.isOrdinal() ) {
7172
if ( tempQueryParametersByPosition == null ) {
7273
tempQueryParametersByPosition = new HashMap<>();
7374
}
7475
tempQueryParametersByPosition.put( queryParameter.getPosition(), queryParameter );
7576
}
76-
else if ( queryParameter.getName() != null ) {
77+
else if ( queryParameter.isNamed() ) {
7778
if ( tempQueryParametersByName == null ) {
7879
tempQueryParametersByName = new HashMap<>();
7980
}
@@ -84,21 +85,21 @@ else if ( queryParameter.getName() != null ) {
8485
if ( tempQueryParametersByPosition != null ) {
8586
verifyOrdinalParamLabels( tempQueryParametersByPosition.keySet() );
8687
}
87-
this.queryParametersByPosition = tempQueryParametersByPosition;
88-
this.queryParametersByName = tempQueryParametersByName;
89-
this.queryParameterBindingsTemplate = QueryParameterBindingsImpl.from( this, null );
88+
queryParametersByPosition = tempQueryParametersByPosition;
89+
queryParametersByName = tempQueryParametersByName;
90+
queryParameterBindingsTemplate = QueryParameterBindingsImpl.from( this, null );
9091
}
9192

9293
public ParameterMetadataImpl(
9394
Map<Integer, QueryParameterImplementor<?>> positionalQueryParameters,
9495
Map<String, QueryParameterImplementor<?>> namedQueryParameters) {
9596
assert !isEmpty( positionalQueryParameters ) || !isEmpty( namedQueryParameters );
96-
this.queryParameters = new LinkedHashMap<>();
97+
queryParameters = new LinkedHashMap<>();
9798
Map<String, QueryParameterImplementor<?>> tempQueryParametersByName = null;
9899
Map<Integer, QueryParameterImplementor<?>> tempQueryParametersByPosition = null;
99100
if ( positionalQueryParameters != null ) {
100101
for ( var queryParameter : positionalQueryParameters.values() ) {
101-
this.queryParameters.put( queryParameter, emptyList() );
102+
queryParameters.put( queryParameter, emptyList() );
102103
if ( tempQueryParametersByPosition == null ) {
103104
tempQueryParametersByPosition = new HashMap<>();
104105
}
@@ -113,13 +114,13 @@ public ParameterMetadataImpl(
113114
if ( tempQueryParametersByName == null ) {
114115
tempQueryParametersByName = new HashMap<>();
115116
}
116-
this.queryParameters.put( queryParameter, emptyList() );
117+
queryParameters.put( queryParameter, emptyList() );
117118
tempQueryParametersByName.put( queryParameter.getName(), queryParameter );
118119
}
119120
}
120-
this.queryParametersByPosition = tempQueryParametersByPosition;
121-
this.queryParametersByName = tempQueryParametersByName;
122-
this.queryParameterBindingsTemplate = QueryParameterBindingsImpl.from( this, null );
121+
queryParametersByPosition = tempQueryParametersByPosition;
122+
queryParametersByName = tempQueryParametersByName;
123+
queryParameterBindingsTemplate = QueryParameterBindingsImpl.from( this, null );
123124
}
124125

125126
private static void verifyOrdinalParamLabels(Set<Integer> labels) {
@@ -148,7 +149,7 @@ private static void verifyOrdinalParamLabels(Set<Integer> labels) {
148149
"Gap between '?%s' and '?%s' in ordinal parameter labels [%s] (ordinal parameters must be labelled sequentially)",
149150
lastPosition,
150151
sortedPosition,
151-
StringHelper.join( ",", sortedLabels.iterator() )
152+
join( ",", sortedLabels.iterator() )
152153
)
153154
);
154155
}
@@ -224,7 +225,8 @@ public <P> QueryParameterImplementor<P> resolve(Parameter<P> param) {
224225
return parameterImplementor;
225226
}
226227

227-
final String errorMessage = "Could not resolve jakarta.persistence.Parameter '" + param + "' to org.hibernate.query.QueryParameter";
228+
final String errorMessage =
229+
"Could not resolve jakarta.persistence.Parameter '" + param + "' to org.hibernate.query.QueryParameter";
228230
throw new IllegalArgumentException(
229231
errorMessage,
230232
new UnknownParameterException( errorMessage )

hibernate-core/src/main/java/org/hibernate/query/internal/QueryEngineImpl.java

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.hibernate.engine.jdbc.spi.JdbcServices;
1313
import org.hibernate.engine.query.spi.NativeQueryInterpreter;
1414
import org.hibernate.internal.util.config.ConfigurationException;
15-
import org.hibernate.internal.util.config.ConfigurationHelper;
1615
import org.hibernate.metamodel.MappingMetamodel;
1716
import org.hibernate.metamodel.model.domain.JpaMetamodel;
1817
import org.hibernate.type.BindingContext;
@@ -41,6 +40,8 @@
4140
import static java.util.Comparator.comparingInt;
4241
import static org.hibernate.cfg.QuerySettings.QUERY_PLAN_CACHE_ENABLED;
4342
import static org.hibernate.cfg.QuerySettings.QUERY_PLAN_CACHE_MAX_SIZE;
43+
import static org.hibernate.internal.util.config.ConfigurationHelper.getBoolean;
44+
import static org.hibernate.internal.util.config.ConfigurationHelper.getInteger;
4445

4546
/**
4647
* Aggregation and encapsulation of the components Hibernate uses
@@ -97,30 +98,30 @@ private static HqlTranslator resolveHqlTranslator(
9798
QueryEngineOptions options,
9899
Dialect dialect,
99100
SqmCreationContext sqmCreationContext) {
100-
final var sqmCreationOptions = new SqmCreationOptionsStandard( options );
101-
if ( options.getCustomHqlTranslator() != null ) {
102-
return options.getCustomHqlTranslator();
101+
final var customHqlTranslator = options.getCustomHqlTranslator();
102+
if ( customHqlTranslator != null ) {
103+
return customHqlTranslator;
103104
}
104-
else if ( dialect.getHqlTranslator() != null ) {
105-
return dialect.getHqlTranslator();
106-
}
107-
else {
108-
return new StandardHqlTranslator( sqmCreationContext, sqmCreationOptions );
105+
final var hqlTranslator = dialect.getHqlTranslator();
106+
if ( hqlTranslator != null ) {
107+
return hqlTranslator;
109108
}
109+
return new StandardHqlTranslator( sqmCreationContext,
110+
new SqmCreationOptionsStandard( options ) );
110111
}
111112

112113
private static SqmTranslatorFactory resolveSqmTranslatorFactory(
113114
QueryEngineOptions runtimeOptions,
114115
Dialect dialect) {
115-
if ( runtimeOptions.getCustomSqmTranslatorFactory() != null ) {
116-
return runtimeOptions.getCustomSqmTranslatorFactory();
117-
}
118-
else if ( dialect.getSqmTranslatorFactory() != null ) {
119-
return dialect.getSqmTranslatorFactory();
116+
final var customSqmTranslatorFactory = runtimeOptions.getCustomSqmTranslatorFactory();
117+
if ( customSqmTranslatorFactory != null ) {
118+
return customSqmTranslatorFactory;
120119
}
121-
else {
122-
return new StandardSqmTranslatorFactory();
120+
final var sqmTranslatorFactory1 = dialect.getSqmTranslatorFactory();
121+
if ( sqmTranslatorFactory1 != null ) {
122+
return sqmTranslatorFactory1;
123123
}
124+
return new StandardSqmTranslatorFactory();
124125
}
125126

126127
private static SqmFunctionRegistry createFunctionRegistry(
@@ -171,33 +172,33 @@ private static List<FunctionContributor> sortedFunctionContributors(ServiceRegis
171172

172173
public static QueryInterpretationCache buildInterpretationCache(
173174
ServiceRegistry serviceRegistry, Map<String, Object> properties) {
174-
final boolean useCache = ConfigurationHelper.getBoolean(
175+
final boolean useCache = getBoolean(
175176
QUERY_PLAN_CACHE_ENABLED,
176177
properties,
177178
// enabled by default
178179
true
179180
);
180181

181-
final Integer explicitMaxPlanSize = ConfigurationHelper.getInteger(
182+
final Integer explicitMaxPlanSize = getInteger(
182183
QUERY_PLAN_CACHE_MAX_SIZE,
183184
properties
184185
);
185186

186187
//Let's avoid some confusion and check settings consistency:
187188
final int appliedMaxPlanSize =
188189
explicitMaxPlanSize == null
189-
? QueryEngine.DEFAULT_QUERY_PLAN_MAX_COUNT
190+
? DEFAULT_QUERY_PLAN_MAX_COUNT
190191
: explicitMaxPlanSize;
191192
if ( !useCache && explicitMaxPlanSize != null && appliedMaxPlanSize > 0 ) {
192193
throw new ConfigurationException( "Inconsistent configuration: '" + QUERY_PLAN_CACHE_MAX_SIZE
193-
+ "' can only be set to a greater than zero value when '"
194+
+ "' can only be set to a value greater than zero when '"
194195
+ QUERY_PLAN_CACHE_ENABLED + "' is enabled" );
195196
}
196197

197198
if ( appliedMaxPlanSize < 0 ) {
198199
throw new ConfigurationException( "Inconsistent configuration: '" + QUERY_PLAN_CACHE_MAX_SIZE
199-
+ "' can't be set to a negative value. To disable the query plan cache set '"
200-
+ QUERY_PLAN_CACHE_ENABLED + "' to 'false'" );
200+
+ "' can't be set to a negative value (to disable the query plan cache set '"
201+
+ QUERY_PLAN_CACHE_ENABLED + "' to 'false')" );
201202
}
202203

203204
return useCache

0 commit comments

Comments
 (0)