---恢复内容开始---

之前我个人对于java的想法,是把java想的太简单:无非就是通过一些操作实现增删改查。直到了解到高并发,开始思考每个java中的“工具”,比如集合比如输入输出流是有很多讲究的。

后来变成,我把java想的太难,于是畏手畏脚,不敢改代码 ,只想着先完成基本功能就好。这也就是造成我这次“失误”的原因。

一.背景

 说是失误,其实并不是。但畏手畏脚不敢写代码倒是真的,我只想这完成基本的业务需求。

这次的背景条件如下:

n张存于mongoDB的表,对每一张表都实现:查看全表多条件查询。

二.思路

使用的数据层操作方式是JPA,本来mongoDB就不像mySQL那样支持各种的查询方式,JPA的查询方式就只锁定了几种简单的查询方式,多条件查询这种事不可能的。于是我就开始尝试通过JPA的@Query。打算自己写sql语句 但是发现也是不行。

 

三.结果

然后只能使用MongoTemplate,这个类对于Mongo的查询,可以通过Query中的语句进行查询,但是返回的是满足查询条件的集合,而不是分页。但是前端的分页框架,进行分页,必须要传递Pageable。

 

所以自己写了分页,前端也变成了手动实现分页。

最后经过指点,查看pageable是怎么实现的,于是手动new了PageImp,将集合传入里面,相当于手动 调用了一个分页的接口。

这让我对于接口的理解更加深入。

 

这个思路。值得记录。就是:大神写出来的代码,因为种种原因不能直接用,也没关系,那就创造条件 ,手动调接口,能用就行。over~