#java #spring #mongodb #mongorepository
#java #весна #mongodb #mongorepository
Вопрос:
Скажем, у нас есть класс с именем person
public class Person{
private String name;
private boolean active;
}
Когда я вызываю personRepository.findByName("John Doe")
, результатом должны быть объекты с именем John Doe и active is True
. Между тем, когда personRepository.findByNameAndActive("John Doe", false)
, он должен возвращать результат всех объектов с John Doe и active = false
Есть ли какой — нибудь способ сделать это?
Ответ №1:
К сожалению, методы MongoRepository по умолчанию не поддерживают предложения OR или AND .
Поддерживаемые ключевые слова для методов запроса
Но вы можете использовать аннотацию @Query, чтобы определить, что должно быть сделано этим методом:
@Query("{ 'name' : ?0, 'active' : true }")
Person findByName(String name);
@Query("{ 'name' : ?0, 'active' : ?1 }")
Person findByNameAndActive(String name, boolean active);