У меня есть список, который я использую, чтобы найти некоторые идентификаторы из БД. Список содержит что-то вроде следующего:
List<someObject> filterCriteria =[{"name":"somename", "value":"someValue"},{"value":"randomValue"}]
Это дает мне два отдельных фильтра, один из которых выполняет поиск по nameValue, а другой - только по значению. Я строю два критерия, используя эти значения: критерии значения имени:
where("person.name")
.is(filterItem.getName())
.andOperator(Criteria.where("person.value").regex(filterItem.getValue(), "i"))
и фильтр значений как:
where("person.value")
.regex(someString, "i");
Я выполняю итерацию в отдельной службе, чтобы получить их в виде списка критериев как :
List<Criteria> criteriaList = new ArrayList<>();
filterCriteria.forEach(x -> criteriaList.add(criteriaMapper.mapFilterCriteria()));
Я пытаюсь использовать Criteria API весной для создания одного запроса, который эквивалентен запросу mon go с вышеуказанными критериями
db.collection.find({$or:[{$and:[{"person.value":"jOfQIv5QMairziy"}
,{"person.name":"zzDLpQSBAA"}]},{"person.value":"re3bMfZAIDZHFPj"}]});
Я невозможно сформировать запрос на запись. Я столкнулся с API QueryBuilder, но не могу понять, как его использовать. Любая помощь будет очень полезна