Mybatis关联查询一对多使用插件分页返回数据不对
2015-06-23 16:47
260 查看
之前在做查询,开始没有考虑那么多,就没有做分页;后来随着数据量越来越大,不得不对以前的接口改成能分页的。我用的是mybatis自带的分页插件,可以在不改变原来的sql的基础上进行分页封装,这里面用的的是拦截器的功能。修改很顺利,可没有想到后面对比后台所查询出的记录,发现返回的结果会缺失。百思不得其解。 我通过打印结果,并对比直接从数据库中查询的结果,发现缺失的是一对多,多的一方会缺失。我才想起我这里在做关联查询,再将结果封装到对象中,对象中还关联了一个list类型。在看打印的sql,可以看到分页都是在原先的sql包一层分页的逻辑。此时才恍然大悟。 碰到这种情况,首先你得清楚你分页的重点是哪一方面。如果你是想把一方查出来,在顺便将多方给查到,这时你就不能使用自带的插件了,因为这个插件是在最外层分页,而已想要的只是对一方进行分页,这时你只能自己写分页的sql,在查一方表的时候用个数据库的分页关键字。 如果你就是要把这种关联结果查出来,那就更简单了,将结果封装成简单实体即可。 另外使用插件自带的分页统计,这个查询速度非常慢。有必要自己写sql统计,使用count(1)可以提高统计速度。
相关文章推荐
- python使用xlrd xlwt操作Excel
- QuickFIX/N入门:使用消息循环分组
- 1020. Tree Traversals (25)
- nios ii 中双向pio的设置与读写函数
- 流媒体开发之--直播实现
- 使用 maven-jar 和Copy dependency 构建可执行的jar 包
- MVC-内容详情页显示内容
- SAE跨应用数据库访问
- web站点发布
- 求二叉树的高度、结点数和叶结点数
- Android官方文档-App Widgets
- AndroidStudio Override Method重载方法
- QuickFIX/N入门:如何自定义FIX
- ScrollView里面动态设置listView的Item个数
- java根据本地Ip获取mac地址
- Redhat 5.8 ORACLE 11gR2 RAC安装文档4-grid 安装验证
- 长日漫漫,十年匆匆
- 夏日PHP图书管理系统v0.3测试试用过程
- 使用ASP.NET实现Windows Service定时执行任务
- Tarjan UVALive 6511 Term Project