使用SpringData的MongoRepository可以十分简便地操作数据,但今天发现分页功能有点“问题”。
问题:
PageRequest 的page参数 首页为 0,而不是 1。
UserRepository.java
public interface UserRepository extends MongoRepository<BetGameUserMO, String> {
@Query("{'userName': ?0}")
public Page<BetGameUserMO> findByUserName(String userName, Pageable pageable);
}查询方法一
public List<User> listUsers(String userName, int page, int pageSize) {
Sort sort = new Sort(Sort.Direction.DESC, "createTime");
Pageable pageable = new PageRequest(page, pageSize, sort);
Page<User> pages= userRepository.findByUserName(userName, pageable);
List<User> list = pages.getContent();
return list;
}查询方法二
public List<User> listUsers2(String userName, int page, int pageSize) {
Sort sort = new Sort(Sort.Direction.DESC, "createTime");
User user= new User();
User.setUserId(userId);
Example<User> example = Example.of(user);
Page<User> pages= userRepository.findAll(userName, pageable);
List<User> list = pages.getContent();
return list;
}logback-spring.xml
(开启debug日志,查看到调用过程,可以看出方法一与方法二会有些许区别)
<logger name="org.springframework.data.mongodb.core" level="debug"/>从日志中看到方法二多了以下条件
{ "_class" : { "$in" : [ "kin.test.User"]}
版权声明:本文为kinsxkins原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。