SpringData MongoDB repository 分页

来源:互联网 发布:app编程傻瓜用什么软件 编辑:程序博客网 时间:2024/06/14 04:42

使用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"]}
原创粉丝点击