Skip to content

Commit 96344f5

Browse files
committed
Correctly fill multiple named parameters with collection
Fixes spring-projects#34768
1 parent 0f19fa5 commit 96344f5

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

spring-r2dbc/src/main/java/org/springframework/r2dbc/core/NamedParameterUtils.java

+16-8
Original file line numberDiff line numberDiff line change
@@ -529,17 +529,25 @@ public void bind(BindTarget target, String identifier, Parameter parameter) {
529529
if (parameter.getValue() instanceof Collection collection) {
530530
Iterator<Object> iterator = collection.iterator();
531531
Iterator<BindMarker> markers = bindMarkers.iterator();
532-
while (iterator.hasNext()) {
533-
Object valueToBind = iterator.next();
534-
if (valueToBind instanceof Object[] objects) {
535-
for (Object object : objects) {
536-
bind(target, markers, object);
532+
do {
533+
while (iterator.hasNext()) {
534+
Object valueToBind = iterator.next();
535+
if (valueToBind instanceof Object[] objects) {
536+
for (Object object : objects) {
537+
bind(target, markers, object);
538+
}
539+
}
540+
else {
541+
bind(target, markers, valueToBind);
537542
}
538543
}
539-
else {
540-
bind(target, markers, valueToBind);
544+
545+
if (markers.hasNext()) {
546+
iterator = collection.iterator();
547+
} else {
548+
break;
541549
}
542-
}
550+
} while (true);
543551
}
544552
else {
545553
for (BindMarker bindMarker : bindMarkers) {

0 commit comments

Comments
 (0)