@@ -279,12 +279,8 @@ private Query restrictMaxResultsIfNecessary(Query query, @Nullable ScrollPositio
279
279
280
280
protected JpqlQueryCreator createCreator (Sort sort , JpaParametersParameterAccessor accessor ) {
281
281
282
- JpqlQueryCreator jpqlQueryCreator ;
283
- synchronized (cache ) {
284
- jpqlQueryCreator = cache .get (sort , accessor ); // this caching thingy is broken due to IS NULL rendering for
285
- // simple properties
286
- }
287
-
282
+ JpqlQueryCreator jpqlQueryCreator = cache .get (sort , accessor ); // this caching thingy is broken due to IS NULL
283
+ // rendering for
288
284
if (jpqlQueryCreator != null ) {
289
285
return jpqlQueryCreator ;
290
286
}
@@ -307,9 +303,7 @@ protected JpqlQueryCreator createCreator(Sort sort, JpaParametersParameterAccess
307
303
return creator ;
308
304
}
309
305
310
- synchronized (cache ) {
311
- cache .put (sort , accessor , creator );
312
- }
306
+ cache .put (sort , accessor , creator );
313
307
314
308
return creator ;
315
309
}
@@ -377,13 +371,12 @@ private Sort getDynamicSort(JpaParametersParameterAccessor accessor) {
377
371
*/
378
372
private class CountQueryPreparer extends QueryPreparer {
379
373
380
- private volatile JpqlQueryCreator cached ;
374
+ private final PartTreeQueryCache cache = new PartTreeQueryCache () ;
381
375
382
376
@ Override
383
377
protected JpqlQueryCreator createCreator (Sort sort , JpaParametersParameterAccessor accessor ) {
384
378
385
- JpqlQueryCreator cached = this .cached ;
386
-
379
+ JpqlQueryCreator cached = cache .get (Sort .unsorted (), accessor );
387
380
if (cached != null ) {
388
381
return cached ;
389
382
}
@@ -393,7 +386,9 @@ protected JpqlQueryCreator createCreator(Sort sort, JpaParametersParameterAccess
393
386
getQueryMethod ().getResultProcessor ().getReturnedType (), provider , templates , em );
394
387
395
388
if (!accessor .getParameters ().hasDynamicProjection ()) {
396
- return this .cached = new CacheableJpqlCountQueryCreator (creator );
389
+ cached = new CacheableJpqlCountQueryCreator (creator );
390
+ cache .put (Sort .unsorted (), accessor , cached );
391
+ return cached ;
397
392
}
398
393
399
394
return creator ;
0 commit comments