首先,由于最近项目中用到缓存redis而且还有 查询分页的比较多,因此用到一个PageEntity的一个类,让实体类需要用的分页的时候来继承就可以了。
用好这个类
你的排序更酸爽。
然后,how ?
1、 设计表的时候,必须有这个三个字段 create_time, status, status_time
2、 根据这三个字段过滤数据的场景是在是太多了
3、 若这三个字段满足不了你查询数据的需求,那么很好办,extends 这个 PageEntity
4、 这样,就不需要写那么多奇奇怪怪的分页查询的sql了。
对于过多的查询 我们可以这样解决:将查询的结果缓存起来。
缓存的Key,用 getAttrVal4ForRedisKey.getAttrVal4ForRedisKey,
这个是 HSet,里面的结构是
total:xxx page1 List1 page2 List2 .....
缓存的有效时间是30 秒。
这样做的好处不言而喻,很多页面,用户傻不拉几的,不会输入那么多条件的,就是条件一样,我们就没有必要查询多次了,是不是。。。。
下面是redis的写法:
结合前面两个,一来我们这样设计表的话 就可以方便分页和按条件查询,并且很好地对查询结果也缓存了,很好滴减少了重复查询的次数