Запрос JPA-mongorepository по «Примеру» и пагинация не фильтрует набор результатов.
Я использую базы данных spring jpa и mongo в бэкэнде.Я хочу построить нумерацию страниц и фильтр.Разбиение на страницы работает, как и ожидалось, но критерии фильтрации, использующие Пример (springframework.data.domain), не работают.
public class StudentRepository extends MongoRepository<Student, String>{
@Query(value={},fields="{'studentid': 1, 'name':1, 'location':1, 'rank':1, 'mark' :1}
public Page<Student> findAllStudents(Example<Student> ex, Pageable
pageable);
}
Service class method
public List<Student> getStudents(int pageNo, Student student) {
final PageRequest pageRequest = new PageRequest(pageNo -1, pageSize,
Direction.DESC, "name")
ExampleMatcher matcher = ExampleMatcher.matching()
.withMatcher("location", GenericPropertyMatchers.exact())
.withMatcher("name", GenericPropertyMatchers.exact());
return studentRepository.findAllStudents(Example.of(student, matcher),
pageRequest).getContent();
}
Объект Student поступает из пользовательского интерфейса со значениями поля фильтра (который содержит location = "Asia")
Ожидаемый результат : Resultset имеет студентов только из Азии, и первые 50 (pageSize) должны быть возвращены для ввода страницы 1.
Фактический результат : Resultset имеет учащихся из всех регионов, и первые 50 (pageSize) возвращаются для ввода на странице 1.Так что фильтрация не работает .