该问题的重现步骤是什么?
1. 查询第三页的数据列表(无查询条件)
2. 查询第三页的某一条数据(有查询条件,比如按ID查询,结果只返回一条。)
3. 后台提交的查询分页条件为"query":{"current":3,"size":10,"ascs":null,"descs":null},"member":{"id":"123456"}}
期待结果:能正确显示出id为123456的数据在页面出现
实际结果:页面显示为空,查不到数据
注:如果在第一页按条件查询,是能找到这条数据的,在第三页的情况下查询,是找不到
bladex-boot,2.0.6,oracle数据库
Time:0 ms - ID:org.springblade.modules.system.mapper.MemberMapper.selectPage Execute SQL:SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT id FROM blade_member WHERE id = ? AND is_deleted = 0 ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ? {"code":200,"success":true,"data":{"records":[],"total":1,"size":10,"current":3,"orders":[],"searchCount":true,"pages":1},"msg":"操作成功"}
解决方案:
按照翼总给的思路,我的处理方式
我看打印出来的sql,已经有id查询了,放到db里查询的结果是多少?
SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT id FROM blade_member WHERE id = ? AND is_deleted = 0 ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ?
如果在第一页按条件查询,是能找到这条数据的,在第三页的情况下查询,是找不到
那应该是的,查询的时候加上了第三页的分页信息,所以超过范围,没有找到。
如果要解决这种情况的话,每次点击查询按钮事件把当前页强制改为第一页就行了。
扫一扫访问 Blade技术社区 移动端