Spring-JPA фильтр с разбиением на страницы не фильтрует на основе критериев - PullRequest
0 голосов
/ 23 января 2019

Запрос 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.Так что фильтрация не работает .

...