Skip to content

Commit 3f944e6

Browse files
committed
cleanups to org.hibernate.sql.exec
mostly use of 'var'
1 parent a2d5831 commit 3f944e6

18 files changed

+389
-524
lines changed

hibernate-core/src/main/java/org/hibernate/metamodel/mapping/EntityMappingType.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -475,13 +475,11 @@ default String getImportedName() {
475475
return getEntityPersister().getImportedName();
476476
}
477477

478-
default RootGraphImplementor createRootGraph(SharedSessionContractImplementor session) {
479-
if ( getRepresentationStrategy() instanceof EntityRepresentationStrategyMap mapRep ) {
480-
return session.getSessionFactory().createGraphForDynamicEntity( getEntityName() );
481-
}
482-
else {
483-
return session.getSessionFactory().createEntityGraph( getMappedJavaType().getJavaTypeClass() );
484-
}
478+
default RootGraphImplementor<?> createRootGraph(SharedSessionContractImplementor session) {
479+
final var factory = session.getSessionFactory();
480+
return getRepresentationStrategy() instanceof EntityRepresentationStrategyMap strategyMap
481+
? factory.createGraphForDynamicEntity( getEntityName() )
482+
: factory.createEntityGraph( getMappedJavaType().getJavaTypeClass() );
485483
}
486484

487485
interface ConstraintOrderedTableConsumer {

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

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.hibernate.metamodel.mapping.MappingModelExpressible;
1818
import org.hibernate.metamodel.mapping.MappingType;
1919
import org.hibernate.metamodel.mapping.SqlExpressible;
20-
import org.hibernate.type.BindableType;
2120
import org.hibernate.sql.ast.SqlAstWalker;
2221
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
2322
import org.hibernate.sql.exec.ExecutionException;
@@ -27,8 +26,6 @@
2726
import org.hibernate.sql.exec.spi.JdbcParameterBindings;
2827
import org.hibernate.type.BasicType;
2928
import org.hibernate.type.descriptor.java.EnumJavaType;
30-
import org.hibernate.type.descriptor.jdbc.JdbcType;
31-
import org.hibernate.type.descriptor.jdbc.JdbcTypeIndicators;
3229

3330
/**
3431
* @author Steve Ebersole
@@ -85,12 +82,12 @@ public void bindParameterValue(
8582
int startPosition,
8683
JdbcParameterBindings jdbcParamBindings,
8784
ExecutionContext executionContext) throws SQLException {
88-
final JdbcParameterBinding binding = jdbcParamBindings.getBinding( AbstractJdbcParameter.this );
85+
final var binding = jdbcParamBindings.getBinding( AbstractJdbcParameter.this );
8986
if ( binding == null ) {
9087
throw new ExecutionException( "JDBC parameter value not bound - " + this );
9188
}
9289

93-
final JdbcMapping jdbcMapping = jdbcMapping( executionContext, binding );
90+
final var jdbcMapping = jdbcMapping( executionContext, binding );
9491
bindParameterValue( jdbcMapping, statement, binding.getBindValue(), startPosition, executionContext );
9592
}
9693

@@ -118,47 +115,41 @@ protected void bindParameterValue(
118115
PreparedStatement statement,
119116
Object bindValue,
120117
int startPosition,
121-
ExecutionContext executionContext) throws SQLException {
118+
ExecutionContext executionContext)
119+
throws SQLException {
122120
//noinspection unchecked
123-
jdbcMapping.getJdbcValueBinder().bind(
124-
statement,
125-
bindValue,
126-
startPosition,
127-
executionContext.getSession()
128-
);
121+
jdbcMapping.getJdbcValueBinder()
122+
.bind( statement, bindValue, startPosition, executionContext.getSession() );
129123
}
130124

131125
private JdbcMapping guessBindType(ExecutionContext executionContext, Object bindValue, JdbcMapping jdbcMapping) {
132126
if ( bindValue == null && jdbcMapping != null ) {
133127
return jdbcMapping;
134128
}
135129
else {
136-
final BindableType<?> parameterType =
130+
final var parameterType =
137131
executionContext.getSession().getFactory().getMappingMetamodel()
138132
.resolveParameterBindType( bindValue );
139-
if ( parameterType == null && bindValue instanceof Enum ) {
140-
return createEnumType( executionContext, (Class) bindValue.getClass() );
141-
}
142-
else {
143-
return parameterType instanceof JdbcMapping ? (JdbcMapping) parameterType : null;
144-
}
133+
return parameterType == null && bindValue instanceof Enum<?> enumValue
134+
? createEnumType( executionContext, enumValue.getClass() )
135+
: parameterType instanceof JdbcMapping ? (JdbcMapping) parameterType : null;
145136
}
146137
}
147138

148139
private static <E extends Enum<E>> BasicType<E> createEnumType(ExecutionContext executionContext, Class<E> enumClass) {
149-
final EnumJavaType<E> enumJavaType = new EnumJavaType<>( enumClass );
150-
final JdbcTypeIndicators indicators =
151-
executionContext.getSession().getTypeConfiguration().getCurrentBaseSqlTypeIndicators();
152-
final JdbcType jdbcType =
140+
final var enumJavaType = new EnumJavaType<>( enumClass );
141+
final var typeConfiguration = executionContext.getSession().getTypeConfiguration();
142+
final var indicators = typeConfiguration.getCurrentBaseSqlTypeIndicators();
143+
final var jdbcType =
153144
// we don't know whether to map the enum as ORDINAL or STRING,
154145
// so just accept the default from the TypeConfiguration, which
155146
// is usually ORDINAL (the default according to JPA)
156-
enumJavaType.getRecommendedJdbcType(indicators);
157-
return indicators.getTypeConfiguration().getBasicTypeRegistry().resolve( enumJavaType, jdbcType );
147+
enumJavaType.getRecommendedJdbcType( indicators );
148+
return typeConfiguration.getBasicTypeRegistry().resolve( enumJavaType, jdbcType );
158149
}
159150

160151
@Override
161-
public MappingModelExpressible getExpressionType() {
152+
public MappingModelExpressible<?> getExpressionType() {
162153
return this;
163154
}
164155

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

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public class JdbcCallImpl implements JdbcOperationQueryCall {
3737
private final JdbcCallFunctionReturn functionReturn;
3838
private final List<JdbcCallParameterRegistration> parameterRegistrations;
3939
private final List<JdbcParameterBinder> parameterBinders;
40-
private final List<JdbcCallParameterExtractor> parameterExtractors;
40+
private final List<JdbcCallParameterExtractor<?>> parameterExtractors;
4141
private final List<JdbcCallRefCursorExtractor> refCursorExtractors;
4242

4343
public JdbcCallImpl(Builder builder) {
@@ -64,7 +64,7 @@ protected JdbcCallImpl(
6464
JdbcCallFunctionReturn functionReturn,
6565
List<JdbcCallParameterRegistration> parameterRegistrations,
6666
List<JdbcParameterBinder> parameterBinders,
67-
List<JdbcCallParameterExtractor> parameterExtractors,
67+
List<JdbcCallParameterExtractor<?>> parameterExtractors,
6868
List<JdbcCallRefCursorExtractor> refCursorExtractors) {
6969
this.callableName = callableName;
7070
this.functionReturn = functionReturn;
@@ -74,22 +74,6 @@ protected JdbcCallImpl(
7474
this.refCursorExtractors = refCursorExtractors;
7575
}
7676

77-
protected JdbcCallImpl(
78-
String callableName,
79-
JdbcCallFunctionReturn functionReturn,
80-
List<JdbcCallParameterRegistration> parameterRegistrations,
81-
List<JdbcParameterBinder> parameterBinders,
82-
List<JdbcCallParameterExtractor> parameterExtractors) {
83-
this(
84-
callableName,
85-
functionReturn,
86-
parameterRegistrations,
87-
parameterBinders,
88-
parameterExtractors,
89-
null
90-
);
91-
}
92-
9377
@Override
9478
public String getSqlString() {
9579
return callableName;
@@ -132,7 +116,7 @@ public boolean isCompatibleWith(
132116
}
133117

134118
@Override
135-
public List<JdbcCallParameterExtractor> getParameterExtractors() {
119+
public List<JdbcCallParameterExtractor<?>> getParameterExtractors() {
136120
return parameterExtractors == null ? emptyList() : parameterExtractors;
137121
}
138122

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import org.hibernate.sql.exec.spi.JdbcCallParameterExtractor;
1414
import org.hibernate.sql.exec.spi.JdbcCallParameterRegistration;
1515
import org.hibernate.sql.exec.spi.JdbcParameterBinder;
16-
import org.hibernate.type.descriptor.jdbc.JdbcType;
1716

1817
import jakarta.persistence.ParameterMode;
1918

@@ -108,7 +107,7 @@ private void registerRefCursorParameter(
108107
private void registerOutputParameter(
109108
CallableStatement callableStatement,
110109
SharedSessionContractImplementor session) {
111-
final JdbcType sqlTypeDescriptor = ormType.getJdbcType();
110+
final var sqlTypeDescriptor = ormType.getJdbcType();
112111
try {
113112
sqlTypeDescriptor.registerOutParameter( callableStatement, jdbcParameterPositionStart );
114113
}

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ public ResultSet extractResultSet(
3434
// .getJdbcEnvironment()
3535
// .getExtractedDatabaseMetaData()
3636
// .supportsNamedParameters();
37-
return session.getFactory()
38-
.getServiceRegistry()
37+
return session.getFactory().getServiceRegistry()
3938
.requireService( RefCursorSupport.class )
4039
.getResultSet( callableStatement, jdbcParameterPosition );
4140
}

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
package org.hibernate.sql.exec.internal;
66

77
import org.checkerframework.checker.nullness.qual.Nullable;
8-
import org.hibernate.query.spi.Limit;
98
import org.hibernate.query.spi.QueryOptions;
109
import org.hibernate.sql.ast.tree.expression.JdbcParameter;
1110
import org.hibernate.sql.exec.spi.ExecutionContext;
@@ -127,26 +126,27 @@ public JdbcLockStrategy getLockStrategy() {
127126

128127
@Override
129128
public boolean isCompatibleWith(JdbcParameterBindings jdbcParameterBindings, QueryOptions queryOptions) {
129+
final var limit = queryOptions.getLimit();
130130
if ( !appliedParameters.isEmpty() ) {
131131
if ( jdbcParameterBindings == null ) {
132132
return false;
133133
}
134134
for ( var entry : appliedParameters.entrySet() ) {
135-
final JdbcParameter parameter = entry.getKey();
136-
final JdbcParameterBinding appliedBinding = entry.getValue();
135+
final var parameter = entry.getKey();
136+
final var appliedBinding = entry.getValue();
137137
// This is a special case where the rendered SQL depends on the presence of the parameter,
138138
// but not specifically on the value. In this case we have to re-generate the SQL if we can't find a binding
139139
// The need for this can be tested with the OracleFollowOnLockingTest#testPessimisticLockWithMaxResultsThenNoFollowOnLocking
140140
// Since the Limit is not part of the query plan cache key, but this has an effect on follow on locking,
141141
// we must treat the absence of Limit parameters, when they were considered for locking, as incompatible
142142
if ( appliedBinding == null ) {
143143
if ( parameter == offsetParameter ) {
144-
if ( queryOptions.getLimit() == null || queryOptions.getLimit().getFirstRowJpa() == 0 ) {
144+
if ( limit == null || limit.getFirstRowJpa() == 0 ) {
145145
return false;
146146
}
147147
}
148148
else if ( parameter == limitParameter ) {
149-
if ( queryOptions.getLimit() == null || queryOptions.getLimit().getMaxRowsJpa() == Integer.MAX_VALUE ) {
149+
if ( limit == null || limit.getMaxRowsJpa() == Integer.MAX_VALUE ) {
150150
return false;
151151
}
152152
}
@@ -156,7 +156,7 @@ else if ( jdbcParameterBindings.getBinding( parameter ) == null ) {
156156
}
157157
// We handle limit and offset parameters below
158158
if ( parameter != offsetParameter && parameter != limitParameter ) {
159-
final JdbcParameterBinding binding = jdbcParameterBindings.getBinding( parameter );
159+
final var binding = jdbcParameterBindings.getBinding( parameter );
160160
// TODO: appliedBinding can be null here, resulting in NPE
161161
if ( binding == null
162162
|| !equal( appliedBinding, binding, appliedBinding.getBindType().getJavaTypeDescriptor() ) ) {
@@ -165,7 +165,6 @@ else if ( jdbcParameterBindings.getBinding( parameter ) == null ) {
165165
}
166166
}
167167
}
168-
final Limit limit = queryOptions.getLimit();
169168
return ( offsetParameter != null || limitParameter != null || limit == null || limit.isEmpty() )
170169
&& isCompatible( offsetParameter, limit == null ? null : limit.getFirstRow(), 0 )
171170
&& isCompatible( limitParameter, limit == null ? null : limit.getMaxRows(), Integer.MAX_VALUE );
@@ -176,7 +175,7 @@ private boolean isCompatible(JdbcParameter parameter, Integer requestedValue, in
176175
return requestedValue == null;
177176
}
178177
else {
179-
final JdbcParameterBinding jdbcParameterBinding = appliedParameters.get( parameter );
178+
final var jdbcParameterBinding = appliedParameters.get( parameter );
180179
if ( jdbcParameterBinding == null ) {
181180
// If this query includes the parameter this is only compatible when a requested value is given through the query options
182181
// If not, this query string contains limit/offset but the query options don't request that

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

Lines changed: 27 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -53,66 +53,54 @@ public JdbcParameterBindingsImpl(
5353
final boolean paddingEnabled = factory.getSessionFactoryOptions().inClauseParameterPaddingEnabled();
5454
final int inExprLimit = factory.getJdbcServices().getDialect().getParameterCountLimit();
5555

56-
for ( ParameterOccurrence occurrence : parameterOccurrences ) {
57-
final QueryParameterImplementor<?> param = occurrence.parameter();
58-
final QueryParameterBinding<?> binding = queryParameterBindings.getBinding( param );
56+
for ( var occurrence : parameterOccurrences ) {
57+
final var parameter = occurrence.parameter();
58+
final var binding = queryParameterBindings.getBinding( parameter );
5959

60-
final JdbcMapping jdbcMapping = jdbcMapping( factory, param, binding );
60+
final var jdbcMapping = jdbcMapping( factory, parameter, binding );
6161

6262
final BasicValueConverter valueConverter = jdbcMapping == null ? null : jdbcMapping.getValueConverter();
6363

6464
if ( binding.isMultiValued() ) {
65-
final Collection<?> bindValues = binding.getBindValues();
65+
final var bindValues = binding.getBindValues();
6666
final int bindValueCount = bindValues.size();
6767
final int bindValueMaxCount =
6868
determineBindValueMaxCount( paddingEnabled, inExprLimit, bindValueCount );
6969
Object lastBindValue = null;
70-
if ( valueConverter != null ) {
71-
for ( Object bindValue : bindValues ) {
72-
final JdbcParameterImpl jdbcParameter = new JdbcParameterImpl( jdbcMapping );
73-
jdbcParameterBinders.add( jdbcParameter );
74-
lastBindValue = valueConverter.toRelationalValue( bindValue );
75-
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, lastBindValue ) );
76-
}
77-
if ( bindValueMaxCount != bindValueCount ) {
78-
for ( int i = bindValueCount; i < bindValueMaxCount; i++ ) {
79-
final JdbcParameterImpl jdbcParameter = new JdbcParameterImpl( jdbcMapping );
80-
jdbcParameterBinders.add( jdbcParameter );
81-
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, lastBindValue ) );
82-
}
83-
}
70+
for ( Object bindValue : bindValues ) {
71+
final var jdbcParameter = new JdbcParameterImpl( jdbcMapping );
72+
jdbcParameterBinders.add( jdbcParameter );
73+
lastBindValue =
74+
valueConverter == null
75+
? bindValue
76+
: valueConverter.toRelationalValue( bindValue );
77+
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, lastBindValue ) );
8478
}
85-
else {
86-
for ( Object bindValue : bindValues ) {
87-
final JdbcParameterImpl jdbcParameter = new JdbcParameterImpl( jdbcMapping );
79+
if ( bindValueMaxCount != bindValueCount ) {
80+
for ( int i = bindValueCount; i < bindValueMaxCount; i++ ) {
81+
final var jdbcParameter = new JdbcParameterImpl( jdbcMapping );
8882
jdbcParameterBinders.add( jdbcParameter );
89-
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, bindValue ) );
90-
lastBindValue = bindValue;
91-
}
92-
if ( bindValueMaxCount != bindValueCount ) {
93-
for ( int i = bindValueCount; i < bindValueMaxCount; i++ ) {
94-
final JdbcParameterImpl jdbcParameter = new JdbcParameterImpl( jdbcMapping );
95-
jdbcParameterBinders.add( jdbcParameter );
96-
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, lastBindValue ) );
97-
}
83+
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, lastBindValue ) );
9884
}
9985
}
86+
10087
}
10188
else {
102-
final Object bindValue =
103-
valueConverter != null && binding.getBindValue() != null
104-
? valueConverter.toRelationalValue( binding.getBindValue() )
105-
: binding.getBindValue();
106-
final JdbcParameterImpl jdbcParameter = new JdbcParameterImpl( jdbcMapping );
89+
final Object bindValue = binding.getBindValue();
90+
final Object convertedBindValue =
91+
valueConverter != null && bindValue != null
92+
? valueConverter.toRelationalValue( bindValue )
93+
: bindValue;
94+
final var jdbcParameter = new JdbcParameterImpl( jdbcMapping );
10795
jdbcParameterBinders.add( jdbcParameter );
108-
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, bindValue ) );
96+
addBinding( jdbcParameter, new JdbcParameterBindingImpl( jdbcMapping, convertedBindValue ) );
10997
}
11098
}
11199
}
112100
}
113101

114102
private JdbcMapping jdbcMapping(SessionFactoryImplementor factory, QueryParameterImplementor<?> param, QueryParameterBinding<?> binding) {
115-
final BindableType<?> type = determineParamType( param, binding );
103+
final var type = determineParamType( param, binding );
116104
if ( type == null ) {
117105
return factory.getTypeConfiguration().getBasicTypeForJavaType( Object.class );
118106
}
@@ -129,7 +117,7 @@ else if ( type instanceof BasicValuedMapping basicValuedMapping ) {
129117
}
130118

131119
private BindableType<?> determineParamType(QueryParameterImplementor<?> param, QueryParameterBinding<?> binding) {
132-
final BindableType<?> type = binding.getBindType();
120+
final var type = binding.getBindType();
133121
return type == null ? param.getHibernateType() : type;
134122
}
135123

@@ -165,11 +153,4 @@ public void clear() {
165153
bindingMap.clear();
166154
}
167155
}
168-
169-
/**
170-
* For testing.
171-
*/
172-
public Map<JdbcParameter, JdbcParameterBinding> getBindingMap() {
173-
return bindingMap;
174-
}
175156
}

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

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818
* @author Steve Ebersole
1919
*/
2020
public class JdbcParametersImpl implements JdbcParameters {
21-
/**
22-
* Singleton access
23-
*/
24-
public static final JdbcParametersImpl NO_PARAMETERS = new JdbcParametersImpl();
2521

2622
private Set<JdbcParameter> jdbcParameters;
2723

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public Timeout getBaseline() {
3939

4040
@Override
4141
public void performPreAction(StatementAccess jdbcStatementAccess, Connection jdbcConnection, ExecutionContext executionContext) {
42-
final SessionFactoryImplementor factory = executionContext.getSession().getFactory();
42+
final var factory = executionContext.getSession().getFactory();
4343

4444
// first, get the baseline (for post-action)
4545
baseline = lockTimeoutStrategy.getLockTimeout( jdbcConnection, factory );

0 commit comments

Comments
 (0)