Mongodb系列- 使用spring-data-mongodb实现分页查询
在用spring-data-mongodb框架开发的过程中,需要实现分页查询,就百度了下,没找到满意的又google了下,找到了思路.
在spring-data-mongodb 官方文档中,建议你使用PagingAndSortingRepository
来实现分页,但是我是真的不喜欢这个设计啊!!
用方法名来映射查询语句,框架会自动生成执行代码,还为此定义了一套语法,举个例子:
public interface UserRepository extends MongoRepository<User, String>, QueryDslPredicateExecutor<User> {
@Query("{ 'name' : ?0 }")
List<User> findUsersByName(String name);
@Query("{ 'age' : { $gt: ?0, $lt: ?1 } }")
List<User> findUsersByAgeBetween(int ageGT, int ageLT);
List<User> findByName(String name);
List<User> findByNameLikeOrderByAgeAsc(String name);
List<User> findByAgeBetween(int ageGT, int ageLT);
@Query(value = "{}", fields = "{name : 1}")
List<User> findNameAndId();
@Query(value = "{}", fields = "{_id : 0}")
List<User> findNameAndAgeExcludeId();
}
这个接口类只定义了接口,并不需要实现,因为SDM框架(spring-data-mongodb简称,以下都使用简称)会帮你生成代码..
findByAgeBetween(int ageGT, int ageLT);-> 就是where ageGT <age and age <ageLT;
刚开始可能感觉很简单,但是一旦字段多了查询条件复杂了! 你根本不知道自己在写什么!别人看你的代码一长串方法名,也是直接懵逼的..
而 查出来的许多分页查询也是直接使用的PagingAndSortingRepository
这个接口,自动生成...非常不喜欢...就去查怎么使用MongoTemplate实现...
先下班....放假回来补上..哈哈
上一篇: Kafka、RabbitMQ、RocketMQ消息中间件的对比
下一篇: less学习二---变量
推荐阅读
-
Thinkphp使用mongodb数据库实现多条件查询方法
-
在Spring Boot中使用Spring-data-jpa实现分页查询
-
java使用插件pagehelper在mybatis中实现分页查询
-
Thinkphp使用mongodb数据库实现多条件查询方法
-
使用bootstraptable插件实现表格记录的查询、分页、排序操作
-
使用Bootstrap4 + Vue2实现分页查询的示例代码
-
在Spring Boot中使用Spring-data-jpa实现分页查询
-
SQL Server 2012使用Offset/Fetch Next实现分页数据查询
-
Oracle使用MyBatis中RowBounds实现分页查询
-
Oracle使用MyBatis中RowBounds实现分页查询功能