41
41
import java .lang .annotation .Annotation ;
42
42
import java .lang .reflect .AnnotatedElement ;
43
43
import java .lang .reflect .Member ;
44
- import java .util .ArrayList ;
45
- import java .util .Collections ;
46
- import java .util .HashMap ;
47
- import java .util .HashSet ;
48
- import java .util .Iterator ;
49
- import java .util .List ;
50
- import java .util .Locale ;
51
- import java .util .Map ;
52
- import java .util .Objects ;
53
- import java .util .Set ;
44
+ import java .util .*;
54
45
import java .util .regex .Matcher ;
55
46
import java .util .regex .Pattern ;
56
47
import java .util .stream .Collectors ;
@@ -532,7 +523,6 @@ private static Integer findClose(final Integer open, final List<Integer> closes,
532
523
* @param entityManager must not be {@literal null}.
533
524
* @return Guaranteed to be not {@literal null}.
534
525
*/
535
-
536
526
public static <T > Query applyAndBind (String queryString , Iterable <T > entities , EntityManager entityManager ) {
537
527
538
528
Assert .notNull (queryString , "Querystring must not be null" );
@@ -546,30 +536,8 @@ public static <T> Query applyAndBind(String queryString, Iterable<T> entities, E
546
536
}
547
537
548
538
String alias = detectAlias (queryString );
549
- StringBuilder builder = new StringBuilder (queryString );
550
- builder .append (" where" );
551
-
552
- int i = 0 ;
553
-
554
- while (iterator .hasNext ()) {
555
-
556
- iterator .next ();
557
-
558
- builder .append (String .format (" %s = ?%d" , alias , ++i ));
559
-
560
- if (iterator .hasNext ()) {
561
- builder .append (" or" );
562
- }
563
- }
564
-
565
- Query query = entityManager .createQuery (builder .toString ());
566
-
567
- iterator = entities .iterator ();
568
- i = 0 ;
569
-
570
- while (iterator .hasNext ()) {
571
- query .setParameter (++i , iterator .next ());
572
- }
539
+ Query query = entityManager .createQuery ("%s where %s IN (?1)" .formatted (queryString , alias ));
540
+ query .setParameter (1 , entities instanceof Collection <T > ? entities : Streamable .of (entities ).toList ());
573
541
574
542
return query ;
575
543
}
0 commit comments