PageHelper使用ORDER BY以及分页问题
使用开源分页插件PageHelper的时候,发现两个问题:发现数据有重复,即第一页的数据在第二页同样出现,总数是正确的;只有两页的情况下,获取第三页也有数据,且是第二页的数据;sql语句是有ORDER BY 语句,发现是因为ORDER BY的字段是时间的问题,MySQL的timestamp精确到秒,而我的记录是批量插入的,都是同一秒,时间是相同的,所以会出现这种问题,解决办法是ORD...
文章共346字 · 阅读需要大约2分钟
一键AI生成摘要,助你高效阅读
问答
·
使用开源分页插件PageHelper的时候,发现两个问题:
- 发现数据有重复,即第一页的数据在第二页同样出现,总数是正确的;
- 只有两页的情况下,获取第三页也有数据,且是第二页的数据;
sql语句是有ORDER BY 语句,发现是因为ORDER BY的字段是时间的问题,MySQL的timestamp精确到秒,而我的记录是批量插入的,都是同一秒,时间是相同的,所以会出现这种问题,解决办法是ORDER BY的字段要尽可能不一样。如果要精确,可以指定字段:
datetime0 datetime, // 到秒
datetime1 datetime(1), // 到毫秒
datetime2 datetime(2),
datetime3 datetime(3)
第二个问题是需要修改一下PageHelper的配置就可以:
pagehelper:
helperDialect: mysql
reasonable: false
supportMethodsArguments: true
params: count=countSql
reasonable: true
会出现问题2,改成false即可,当 reasonable: true
的时候,pageNo<1
的时候会返回第一页,pageNo>最大页
的时候会返回最后一页。
更多推荐
已为社区贡献1条内容
所有评论(0)