分页查询功能

Blade 已结 1 1451
有问题
有问题 剑童 2019-08-22 10:39


该问题的重现步骤是什么?

1. 查询第三页的数据列表(无查询条件)

2. 查询第三页的某一条数据(有查询条件,比如按ID查询,结果只返回一条。)

image.png

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":"操作成功"}


解决方案:

按照翼总给的思路,我的处理方式

image.png


1条回答
  •  admin
    admin (最佳回答者)
    2019-08-22 10:47

    我看打印出来的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 > ?


    作者追问:2019-08-22 10:47

    如果在第一页按条件查询,是能找到这条数据的,在第三页的情况下查询,是找不到

    回答: 2019-08-22 10:47

    那应该是的,查询的时候加上了第三页的分页信息,所以超过范围,没有找到。

    如果要解决这种情况的话,每次点击查询按钮事件把当前页强制改为第一页就行了。

    0 讨论(1)
提交回复