通过“示例”和分页查询JPA-mongorepository不会过滤结果集
我在后端使用spring jpa和mongo数据库。我想建立分页和过滤器功能。分页工作正常,但使用Example(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();
}
学生对象来自具有过滤器字段值的UI(其中包含location =“ Asia”)
期望的结果:结果集中只有来自亚洲的学生,并且必须返回前50(pageSize)作为第1页的输入。
实际结果:结果集具有来自所有地区的学生,并且返回第50个(pageSize)作为第1页的输入。因此过滤不起作用。