具有分页功能的Spring-JPA过滤器不会根据条件进行过滤

时间:2019-01-23 19:35:19

标签: spring mongodb spring-boot spring-mvc spring-data-mongodb

通过“示例”和分页查询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页的输入。因此过滤不起作用

0 个答案:

没有答案