15
15
import org .hibernate .HibernateException ;
16
16
import org .hibernate .QueryException ;
17
17
import org .hibernate .boot .Metadata ;
18
- import org .hibernate .boot .query .NamedHqlQueryDefinition ;
19
- import org .hibernate .boot .query .NamedNativeQueryDefinition ;
20
- import org .hibernate .boot .query .NamedProcedureCallDefinition ;
21
18
import org .hibernate .boot .spi .MetadataImplementor ;
22
19
import org .hibernate .engine .spi .SessionFactoryImplementor ;
23
20
import org .hibernate .procedure .spi .NamedCallableQueryMemento ;
33
30
import org .hibernate .query .named .NamedQueryMemento ;
34
31
import org .hibernate .query .named .NamedResultSetMappingMemento ;
35
32
import org .hibernate .query .spi .QueryEngine ;
36
- import org .hibernate .query .spi .QueryInterpretationCache ;
37
33
import org .hibernate .query .sql .spi .NamedNativeQueryMemento ;
38
34
import org .hibernate .query .sqm .UnknownEntityException ;
39
35
import org .hibernate .query .sqm .UnknownPathException ;
@@ -70,13 +66,14 @@ public NamedObjectRepositoryImpl(
70
66
@ Override
71
67
@ SuppressWarnings ("unchecked" )
72
68
public <R > Map <String , TypedQueryReference <R >> getNamedQueries (Class <R > resultType ) {
73
- final Map <String , TypedQueryReference <R >> namedQueries = new HashMap <>( sqmMementoMap .size () + sqlMementoMap .size () );
74
- for ( Map .Entry <String , NamedSqmQueryMemento <?>> entry : sqmMementoMap .entrySet () ) {
69
+ final Map <String , TypedQueryReference <R >> namedQueries =
70
+ new HashMap <>( sqmMementoMap .size () + sqlMementoMap .size () );
71
+ for ( var entry : sqmMementoMap .entrySet () ) {
75
72
if ( resultType == entry .getValue ().getResultType () ) {
76
73
namedQueries .put ( entry .getKey (), (TypedQueryReference <R >) entry .getValue () );
77
74
}
78
75
}
79
- for ( Map . Entry < String , NamedNativeQueryMemento <?>> entry : sqlMementoMap .entrySet () ) {
76
+ for ( var entry : sqlMementoMap .entrySet () ) {
80
77
if ( resultType == entry .getValue ().getResultType () ) {
81
78
namedQueries .put ( entry .getKey (), (TypedQueryReference <R >) entry .getValue () );
82
79
}
@@ -106,7 +103,6 @@ public void registerNamedQuery(String name, Query query) {
106
103
if ( queryImplementor != null ) {
107
104
if ( queryImplementor instanceof NativeQueryImplementor <?> nativeQueryImplementor ) {
108
105
registerNativeQueryMemento ( name , nativeQueryImplementor .toMemento ( name ) );
109
-
110
106
}
111
107
else if ( queryImplementor instanceof SqmQueryImplementor <?> sqmQueryImplementor ) {
112
108
registerSqmQueryMemento ( name , sqmQueryImplementor .toMemento ( name ) );
@@ -127,12 +123,12 @@ else if ( queryImplementor instanceof SqmQueryImplementor<?> sqmQueryImplementor
127
123
@ Override
128
124
public <R > TypedQueryReference <R > registerNamedQuery (String name , TypedQuery <R > query ) {
129
125
if ( query instanceof NativeQueryImplementor <R > nativeQueryImplementor ) {
130
- final NamedNativeQueryMemento < R > memento = nativeQueryImplementor .toMemento ( name );
126
+ final var memento = nativeQueryImplementor .toMemento ( name );
131
127
registerNativeQueryMemento ( name , memento );
132
128
return memento ;
133
129
}
134
130
else if ( query instanceof SqmQueryImplementor <R > sqmQueryImplementor ) {
135
- final NamedSqmQueryMemento < R > memento = sqmQueryImplementor .toMemento ( name );
131
+ final var memento = sqmQueryImplementor .toMemento ( name );
136
132
registerSqmQueryMemento ( name , memento );
137
133
return memento ;
138
134
}
@@ -238,55 +234,51 @@ public NamedQueryMemento<?> resolve(
238
234
if ( namedQuery != null ) {
239
235
return namedQuery ;
240
236
}
241
- final NamedHqlQueryDefinition <?> namedHqlQueryDefinition = bootMetamodel .getNamedHqlQueryMapping ( registrationName );
237
+ final var namedHqlQueryDefinition = bootMetamodel .getNamedHqlQueryMapping ( registrationName );
242
238
if ( namedHqlQueryDefinition != null ) {
243
- final NamedSqmQueryMemento <?> resolved = namedHqlQueryDefinition .resolve ( sessionFactory );
244
- sqmMementoMap .put ( namedHqlQueryDefinition .getRegistrationName (), resolved );
245
- return resolved ;
239
+ final var memento = namedHqlQueryDefinition .resolve ( sessionFactory );
240
+ sqmMementoMap .put ( namedHqlQueryDefinition .getRegistrationName (), memento );
241
+ return memento ;
246
242
}
247
- final NamedNativeQueryDefinition <?> namedNativeQueryDefinition = bootMetamodel .getNamedNativeQueryMapping ( registrationName );
243
+ final var namedNativeQueryDefinition = bootMetamodel .getNamedNativeQueryMapping ( registrationName );
248
244
if ( namedNativeQueryDefinition != null ) {
249
- final NamedNativeQueryMemento <?> resolved = namedNativeQueryDefinition .resolve ( sessionFactory );
250
- sqlMementoMap .put ( namedNativeQueryDefinition .getRegistrationName (), resolved );
251
- return resolved ;
245
+ final var memento = namedNativeQueryDefinition .resolve ( sessionFactory );
246
+ sqlMementoMap .put ( namedNativeQueryDefinition .getRegistrationName (), memento );
247
+ return memento ;
252
248
}
253
- final NamedProcedureCallDefinition namedCallableQueryDefinition = bootMetamodel .getNamedProcedureCallMapping ( registrationName );
249
+ final var namedCallableQueryDefinition = bootMetamodel .getNamedProcedureCallMapping ( registrationName );
254
250
if ( namedCallableQueryDefinition != null ) {
255
- final NamedCallableQueryMemento resolved = namedCallableQueryDefinition .resolve ( sessionFactory );
256
- callableMementoMap .put ( namedCallableQueryDefinition .getRegistrationName (), resolved );
257
- return resolved ;
251
+ final var memento = namedCallableQueryDefinition .resolve ( sessionFactory );
252
+ callableMementoMap .put ( namedCallableQueryDefinition .getRegistrationName (), memento );
253
+ return memento ;
258
254
}
259
255
return null ;
260
256
}
261
257
262
258
@ Override
263
259
public void prepare (SessionFactoryImplementor sessionFactory , Metadata bootMetamodel ) {
264
260
bootMetamodel .visitNamedHqlQueryDefinitions (
265
- namedHqlQueryDefinition -> {
266
- final NamedSqmQueryMemento <?> resolved = namedHqlQueryDefinition .resolve ( sessionFactory );
267
- sqmMementoMap .put ( namedHqlQueryDefinition .getRegistrationName (), resolved );
268
- }
261
+ namedHqlQueryDefinition ->
262
+ sqmMementoMap .put ( namedHqlQueryDefinition .getRegistrationName (),
263
+ namedHqlQueryDefinition .resolve ( sessionFactory ) )
269
264
);
270
265
271
266
bootMetamodel .visitNamedNativeQueryDefinitions (
272
- namedNativeQueryDefinition -> {
273
- final NamedNativeQueryMemento <?> resolved = namedNativeQueryDefinition .resolve ( sessionFactory );
274
- sqlMementoMap .put ( namedNativeQueryDefinition .getRegistrationName (), resolved );
275
- }
267
+ namedNativeQueryDefinition ->
268
+ sqlMementoMap .put ( namedNativeQueryDefinition .getRegistrationName (),
269
+ namedNativeQueryDefinition .resolve ( sessionFactory ) )
276
270
);
277
271
278
272
bootMetamodel .visitNamedResultSetMappingDefinition (
279
- namedResultSetMappingDefinition -> {
280
- final NamedResultSetMappingMemento resolved = namedResultSetMappingDefinition .resolve ( () -> sessionFactory );
281
- resultSetMappingMementoMap .put ( namedResultSetMappingDefinition .getRegistrationName (), resolved );
282
- }
273
+ namedResultSetMappingDefinition ->
274
+ resultSetMappingMementoMap .put ( namedResultSetMappingDefinition .getRegistrationName (),
275
+ namedResultSetMappingDefinition .resolve ( () -> sessionFactory ) )
283
276
);
284
277
285
278
bootMetamodel .visitNamedProcedureCallDefinition (
286
- namedProcedureCallDefinition -> {
287
- final NamedCallableQueryMemento resolved = namedProcedureCallDefinition .resolve ( sessionFactory );
288
- callableMementoMap .put ( namedProcedureCallDefinition .getRegistrationName (), resolved );
289
- }
279
+ namedProcedureCallDefinition ->
280
+ callableMementoMap .put ( namedProcedureCallDefinition .getRegistrationName (),
281
+ namedProcedureCallDefinition .resolve ( sessionFactory ) )
290
282
);
291
283
292
284
}
@@ -297,18 +289,17 @@ public void prepare(SessionFactoryImplementor sessionFactory, Metadata bootMetam
297
289
298
290
@ Override
299
291
public void validateNamedQueries (QueryEngine queryEngine ) {
300
- final Map < String , HibernateException > errors = checkNamedQueries ( queryEngine );
292
+ final var errors = checkNamedQueries ( queryEngine );
301
293
if ( !errors .isEmpty () ) {
302
294
int i = 0 ;
303
295
final StringBuilder failingQueries = new StringBuilder ( "Errors in named queries: " );
304
- for ( Map . Entry < String , HibernateException > entry : errors .entrySet () ) {
296
+ for ( var entry : errors .entrySet () ) {
305
297
QUERY_MESSAGE_LOGGER .namedQueryError ( entry .getKey (), entry .getValue () );
306
298
failingQueries .append ( "\n " )
307
299
.append (" [" ).append (++i ).append ("] Error in query named '" ).append ( entry .getKey () ).append ("'" )
308
300
.append (": " ).append ( entry .getValue ().getMessage () );
309
301
}
310
- final NamedQueryValidationException exception =
311
- new NamedQueryValidationException ( failingQueries .toString (), errors );
302
+ final var exception = new NamedQueryValidationException ( failingQueries .toString (), errors );
312
303
errors .values ().forEach ( exception ::addSuppressed );
313
304
throw exception ;
314
305
}
@@ -318,20 +309,17 @@ public void validateNamedQueries(QueryEngine queryEngine) {
318
309
public Map <String , HibernateException > checkNamedQueries (QueryEngine queryEngine ) {
319
310
Map <String ,HibernateException > errors = new HashMap <>();
320
311
321
- final QueryInterpretationCache interpretationCache = queryEngine .getInterpretationCache ();
312
+ final var interpretationCache = queryEngine .getInterpretationCache ();
313
+ final var hqlTranslator = queryEngine .getHqlTranslator ();
322
314
323
315
// Check named HQL queries
324
316
log .tracef ( "Checking %s named HQL queries" , sqmMementoMap .size () );
325
- for ( NamedSqmQueryMemento <?> hqlMemento : sqmMementoMap .values () ) {
317
+ for ( var hqlMemento : sqmMementoMap .values () ) {
326
318
final String queryString = hqlMemento .getHqlString ();
327
319
final String registrationName = hqlMemento .getRegistrationName ();
328
320
try {
329
321
log .tracef ( "Checking named HQL query: %s" , registrationName );
330
- interpretationCache .resolveHqlInterpretation (
331
- queryString ,
332
- null ,
333
- queryEngine .getHqlTranslator ()
334
- );
322
+ interpretationCache .resolveHqlInterpretation ( queryString , null , hqlTranslator );
335
323
}
336
324
catch ( QueryException e ) {
337
325
errors .put ( registrationName , e );
0 commit comments