4
4
*/
5
5
package org .hibernate .loader .ast .internal ;
6
6
7
- import java .util .Arrays ;
8
- import java .util .List ;
9
- import java .util .Locale ;
10
- import java .util .function .BiConsumer ;
11
- import java .util .function .Consumer ;
12
-
13
7
import org .hibernate .HibernateException ;
14
8
import org .hibernate .LockOptions ;
15
9
import org .hibernate .engine .spi .LoadQueryInfluencers ;
31
25
import org .hibernate .sql .ast .tree .expression .Expression ;
32
26
import org .hibernate .sql .ast .tree .expression .JdbcParameter ;
33
27
import org .hibernate .sql .ast .tree .from .TableGroup ;
34
- import org .hibernate .sql .ast .tree .from .TableReference ;
35
28
import org .hibernate .sql .ast .tree .predicate .ComparisonPredicate ;
36
29
import org .hibernate .sql .ast .tree .predicate .NullnessPredicate ;
37
30
import org .hibernate .sql .ast .tree .predicate .Predicate ;
38
31
import org .hibernate .sql .ast .tree .select .QuerySpec ;
39
32
import org .hibernate .sql .ast .tree .select .SelectStatement ;
40
33
import org .hibernate .sql .exec .internal .BaseExecutionContext ;
41
34
import org .hibernate .sql .exec .internal .CallbackImpl ;
35
+ import org .hibernate .sql .exec .internal .JdbcOperationQuerySelect ;
42
36
import org .hibernate .sql .exec .internal .JdbcParameterBindingImpl ;
43
37
import org .hibernate .sql .exec .internal .JdbcParameterBindingsImpl ;
44
38
import org .hibernate .sql .exec .internal .JdbcParameterImpl ;
45
39
import org .hibernate .sql .exec .spi .Callback ;
46
- import org .hibernate .sql .exec .internal .JdbcOperationQuerySelect ;
47
40
import org .hibernate .sql .exec .spi .JdbcParameterBinding ;
48
41
import org .hibernate .sql .exec .spi .JdbcParameterBindings ;
49
42
import org .hibernate .sql .exec .spi .JdbcParametersList ;
50
- import org .hibernate .sql .results .graph .*;
51
43
import org .hibernate .sql .results .graph .internal .ImmutableFetchList ;
52
44
import org .hibernate .sql .results .internal .RowTransformerSingularReturnImpl ;
53
45
import org .hibernate .sql .results .spi .ListResultsConsumer ;
54
- import org .hibernate .stat .spi .StatisticsImplementor ;
46
+
47
+ import java .util .Arrays ;
48
+ import java .util .List ;
49
+ import java .util .Locale ;
50
+ import java .util .function .BiConsumer ;
51
+ import java .util .function .Consumer ;
55
52
56
53
import static java .util .Collections .emptyList ;
57
54
import static java .util .Collections .singletonList ;
@@ -90,13 +87,14 @@ public EntityMappingType getLoadable() {
90
87
91
88
@ Override
92
89
public T load (Object naturalIdValue , NaturalIdLoadOptions options , SharedSessionContractImplementor session ) {
93
- final SessionFactoryImplementor factory = session .getFactory ();
90
+ final var factory = session .getFactory ();
94
91
95
- final LockOptions lockOptions = options .getLockOptions () == null
96
- ? new LockOptions ()
97
- : options .getLockOptions ();
92
+ final var lockOptions =
93
+ options .getLockOptions () == null
94
+ ? new LockOptions ()
95
+ : options .getLockOptions ();
98
96
99
- final SelectStatement sqlSelect = LoaderSelectBuilder .createSelect (
97
+ final var sqlSelect = LoaderSelectBuilder .createSelect (
100
98
getLoadable (),
101
99
null , // null here means to select everything
102
100
true ,
@@ -109,7 +107,7 @@ public T load(Object naturalIdValue, NaturalIdLoadOptions options, SharedSession
109
107
factory
110
108
);
111
109
112
- final QuerySpec querySpec = sqlSelect .getQuerySpec ();
110
+ final var querySpec = sqlSelect .getQuerySpec ();
113
111
return executeNaturalIdQuery (
114
112
naturalIdValue ,
115
113
lockOptions ,
@@ -150,7 +148,7 @@ protected Expression resolveColumnReference(
150
148
TableGroup rootTableGroup ,
151
149
SelectableMapping selectableMapping ,
152
150
SqlExpressionResolver sqlExpressionResolver ) {
153
- final TableReference tableReference =
151
+ final var tableReference =
154
152
rootTableGroup .getTableReference ( rootTableGroup .getNavigablePath (),
155
153
selectableMapping .getContainingTableExpression () );
156
154
if ( tableReference == null ) {
@@ -177,22 +175,23 @@ public Object resolveNaturalIdToId(Object naturalIdValue, SharedSessionContractI
177
175
);
178
176
}
179
177
180
- final SessionFactoryImplementor factory = session .getFactory ();
181
- final NavigablePath entityPath = new NavigablePath ( entityDescriptor .getRootPathName () );
182
- final QuerySpec rootQuerySpec = new QuerySpec ( true );
178
+ final var factory = session .getFactory ();
179
+ final var entityPath = new NavigablePath ( entityDescriptor .getRootPathName () );
180
+ final var rootQuerySpec = new QuerySpec ( true );
183
181
184
- final LoaderSqlAstCreationState sqlAstCreationState = new LoaderSqlAstCreationState (
185
- rootQuerySpec ,
186
- new SqlAliasBaseManager (),
187
- new SimpleFromClauseAccessImpl (),
188
- LockOptions .NONE ,
189
- (fetchParent , creationState ) -> ImmutableFetchList .EMPTY ,
190
- true ,
191
- new LoadQueryInfluencers ( factory ),
192
- factory .getSqlTranslationEngine ()
193
- );
182
+ final var sqlAstCreationState =
183
+ new LoaderSqlAstCreationState (
184
+ rootQuerySpec ,
185
+ new SqlAliasBaseManager (),
186
+ new SimpleFromClauseAccessImpl (),
187
+ LockOptions .NONE ,
188
+ (fetchParent , creationState ) -> ImmutableFetchList .EMPTY ,
189
+ true ,
190
+ new LoadQueryInfluencers ( factory ),
191
+ factory .getSqlTranslationEngine ()
192
+ );
194
193
195
- final TableGroup rootTableGroup = entityDescriptor .createRootTableGroup (
194
+ final var rootTableGroup = entityDescriptor .createRootTableGroup (
196
195
true ,
197
196
entityPath ,
198
197
null ,
@@ -204,7 +203,7 @@ public Object resolveNaturalIdToId(Object naturalIdValue, SharedSessionContractI
204
203
rootQuerySpec .getFromClause ().addRoot ( rootTableGroup );
205
204
sqlAstCreationState .getFromClauseAccess ().registerTableGroup ( entityPath , rootTableGroup );
206
205
207
- final DomainResult <?> domainResult =
206
+ final var domainResult =
208
207
entityDescriptor .getIdentifierMapping ().createDomainResult (
209
208
rootTableGroup .getNavigablePath ()
210
209
.append ( EntityIdentifierMapping .ID_ROLE_NAME ),
@@ -232,9 +231,9 @@ protected <R> R executeNaturalIdQuery(
232
231
Consumer <Predicate > predicateConsumer ,
233
232
LoaderSqlAstCreationState sqlAstCreationState ,
234
233
SharedSessionContractImplementor session ) {
235
- final SessionFactoryImplementor factory = session .getFactory ();
234
+ final var factory = session .getFactory ();
236
235
237
- final JdbcParameterBindings bindings =
236
+ final var bindings =
238
237
new JdbcParameterBindingsImpl ( naturalIdMapping .getJdbcTypeCount () );
239
238
applyNaturalIdRestriction (
240
239
naturalIdMapping ().normalizeInput ( naturalIdValue ),
@@ -245,10 +244,10 @@ protected <R> R executeNaturalIdQuery(
245
244
session
246
245
);
247
246
248
- final QueryOptions queryOptions = new SimpleQueryOptions ( lockOptions , false );
247
+ final var queryOptions = new SimpleQueryOptions ( lockOptions , false );
249
248
final var jdbcSelect = createJdbcOperationQuerySelect ( sqlSelect , factory , bindings , queryOptions );
250
249
251
- final StatisticsImplementor statistics = factory .getStatistics ();
250
+ final var statistics = factory .getStatistics ();
252
251
final boolean statisticsEnabled = statistics .isStatisticsEnabled ();
253
252
final long startTime = statisticsEnabled ? System .nanoTime () : -1L ;
254
253
@@ -296,11 +295,11 @@ private static JdbcOperationQuerySelect createJdbcOperationQuerySelect(
296
295
297
296
@ Override
298
297
public Object resolveIdToNaturalId (Object id , SharedSessionContractImplementor session ) {
299
- final SessionFactoryImplementor factory = session .getFactory ();
300
- final EntityIdentifierMapping identifierMapping = entityDescriptor ().getIdentifierMapping ();
298
+ final var factory = session .getFactory ();
299
+ final var identifierMapping = entityDescriptor ().getIdentifierMapping ();
301
300
302
- final JdbcParametersList . Builder builder = JdbcParametersList .newBuilder ();
303
- final SelectStatement sqlSelect = LoaderSelectBuilder .createSelect (
301
+ final var builder = JdbcParametersList .newBuilder ();
302
+ final var sqlSelect = LoaderSelectBuilder .createSelect (
304
303
entityDescriptor (),
305
304
singletonList ( naturalIdMapping () ),
306
305
identifierMapping ,
@@ -311,8 +310,8 @@ public Object resolveIdToNaturalId(Object id, SharedSessionContractImplementor s
311
310
builder ::add ,
312
311
factory
313
312
);
314
- final JdbcParametersList jdbcParameters = builder .build ();
315
- final JdbcParameterBindings bindings = new JdbcParameterBindingsImpl ( jdbcParameters .size () );
313
+ final var jdbcParameters = builder .build ();
314
+ final var bindings = new JdbcParameterBindingsImpl ( jdbcParameters .size () );
316
315
final int offset = bindings .registerParametersForEachJdbcValue ( id , identifierMapping , jdbcParameters , session );
317
316
assert offset == jdbcParameters .size ();
318
317
@@ -350,14 +349,14 @@ void applyRestriction(
350
349
Object jdbcValue ,
351
350
SelectableMapping jdbcValueMapping ,
352
351
SqlExpressionResolver expressionResolver ) {
353
- final Expression columnReference =
352
+ final var columnReference =
354
353
resolveColumnReference ( rootTableGroup , jdbcValueMapping , expressionResolver );
355
354
if ( jdbcValue == null ) {
356
355
predicateConsumer .accept ( new NullnessPredicate ( columnReference ) );
357
356
}
358
357
else {
359
- final JdbcParameter jdbcParameter = new JdbcParameterImpl ( jdbcValueMapping .getJdbcMapping () );
360
- final ComparisonPredicate predicate =
358
+ final var jdbcParameter = new JdbcParameterImpl ( jdbcValueMapping .getJdbcMapping () );
359
+ final var predicate =
361
360
new ComparisonPredicate ( columnReference , ComparisonOperator .EQUAL , jdbcParameter );
362
361
predicateConsumer .accept ( predicate );
363
362
jdbcParameterConsumer .accept ( jdbcParameter ,
0 commit comments