как вызвать функцию MongoTemplate в экземпляре Autowired MongoTemplate при загрузке Spring

Я настроил соединение MongoDB при весенней загрузке. Теперь я хочу запустить собственный запрос, используя метод find() MongoTemplate. но весенняя загрузка не позволяет мне это сделать.

@Autowired
MongoTemplate mongoTemplate;

public List<UserVO> findByQuery(String query) {
    List<UserVO> users = mongoTemplate.find(query, UserVO.class);
    return users;
}

mongoTemplate автоматически настраивается с помощью URI mongo, имя коллекции определяется в UserVO.class с использованием @Document.

Ошибка: Метод find(Query, Class) в типе MongoOperations неприменим для аргументов (String, Class)

Любое предложение будет высоко оценено.


person Akash gupta    schedule 11.01.2018    source источник
comment
Как ясно сказано в сообщении об ошибке, mongoTemplate.find(...) принимает объект и класс Query. Вы передаете строку и класс. Вы должны преобразовать свой запрос, который находится в String, в класс Query   -  person pvpkiran    schedule 11.01.2018
comment
Спасибо, что указали. Работаем над созданием объекта Query. Застрял на добавлении нескольких И в одном операторе ИЛИ с использованием критериев.   -  person Akash gupta    schedule 12.01.2018
comment
поместите код, который вы пробовали, и чего вы хотите достичь с помощью запроса   -  person pvpkiran    schedule 12.01.2018
comment
Его завершено сейчас.   -  person Akash gupta    schedule 12.01.2018


Ответы (1)


Согласно спецификации mongoTemplate.find(Query query, Class entityClass) имеет такие параметры

Вам нужно указать запрос как

new Query(Criteria.where("fieldName").is("searchValue")
person nestdimmy    schedule 13.01.2020