Open
Description
if (parameter.getValue() instanceof Collection collection) {
Iterator<Object> iterator = collection.iterator();
Iterator<BindMarker> markers = bindMarkers.iterator();
while (iterator.hasNext()) {
Object valueToBind = iterator.next();
if (valueToBind instanceof Object[] objects) {
for (Object object : objects) {
bind(target, markers, object);
}
}
else {
bind(target, markers, valueToBind);
}
}
}
For example, for SELECT ... WHERE fund_codeA in (:fundCodes) OR fund_codeB in (:fundCodes)
, fundCodes
references a List, then the code above only fill the first occurrence of :fundCodes
.
parameter = ["00001"]
markers = [?, ?] // two occurrence
// iterate on parameter won't fill second "?"
// SELECT .... WHERE fund_codeA in (?) OR fund_codeB in (?)