diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java index 6013ea806..ada9adec6 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/convert/QueryMapper.java @@ -19,12 +19,12 @@ import java.util.*; import java.util.Map.Entry; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; import org.bson.BsonValue; import org.bson.Document; import org.bson.conversions.Bson; import org.bson.types.ObjectId; + import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; import org.springframework.data.domain.Example; @@ -642,7 +642,7 @@ public class QueryMapper { return false; } - return isKeyword(keys.iterator().next().toString()); + return isKeyword(keys.iterator().next()); } /** @@ -690,10 +690,16 @@ public class QueryMapper { if (value instanceof Collection) { - return ((Collection) value).stream() - .map(it -> conversionService.convert(it, documentField.getProperty().getFieldType())) - .collect(Collectors.toList()); + Collection source = (Collection) value; + Collection converted = new ArrayList<>(source.size()); + + for (Object o : source) { + converted.add(conversionService.convert(o, documentField.getProperty().getFieldType())); + } + + return converted; } + return conversionService.convert(value, documentField.getProperty().getFieldType()); }