问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Spring Webflux + r2dbc 分页查询 示例2

发布网友 发布时间:2022-12-10 19:03

我来回答

1个回答

热心网友 时间:2024-12-06 11:14

我们可以看到, 如果使用R2dbc 已经实现的分页, 那么我们可以使用Pageable 进行分页查询, 但是如果我们需要使用offset 此时, 现有的支持也许并不够用, 那么我们需要自己来实现 Pageable 接口来实现offset分页

由于项目需要, 决策层决定只给API调用者提供获取下一页的功能, 而不是提供给API 调用者提供直接查询某一页的功能, 我个人理解是, 这样做可以直接让API调用方调用指定的需要的查询记录的位置而不是必须要页首.

这里我们就已经实现了所有需要的方法, 那么我们可以使用我们的实现来使用 Offset 类来进行分页查询, 这里笔者觉得如果Spring Pageable 提供泛型会更加灵活, 这样的话我们直接可以指定返回类型, 不过也有可能Spring 本身有其他考量在此.

但是这里还是有缺陷的, 如果外部调用构造函数, 例如 new Offset(5, 10, false), 那么势必,我们使用 pageable.isPaged() 会得到false, 那么我们接下来很可能会碰到一些问题, 但很显然我们需要使用new Offset(5, 10, true). 那么这里最后将构造函数私有, 然后提供,比如一个of的静态方法来让外部使用:

其实这里我们依然有一些问题存在, 例如, 如果控制层调用时, 提供的参数为空的情况, 我们就比较被动了, 以为我们使用的是int 型, 不允许为null, 所以有一种情况, 假设用户请求为: GET "/dosomting?limit=10", 此时, 我们获得的offset是空, 那么我们可能想设定offset = 0, 那么如果使用int 就办不到了, 所以我们需要 offset 为 Integer, 或者给offset 一个默认值等.

由于时间有限, 笔者没有进行过多的测试, 可能实现类中还有隐含问题待解决, 不过自己实现接口往往会遇到各种问题, 这也是很难避免的, 一般建议, 如果依赖包本身含有现成的实现类, 那么我们最好不要重复造轮子, 但是如果必须自己实现, 那良好的测试是必要的
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有释放证明书可以开无犯罪证明吗 刑满释放人员入党需要公安机关出具怎样证明与无罪证明一样的作用 交通事故私了是要注意哪些问题 【私了注意事项】车祸哪些情况不能私了 交通事故私了要注意什么 私了交通事故要注意的问题 wifi6跟wifi5的区别有什么? 只有吉祥寺是想住的街道吗 演员表 《吉祥寺真的是你想住的街道吗》:每个人都会找到适合自己的街道 日剧《只有吉祥寺是想住的街道吗》为何选择“生きていたん 如何评价日剧《只有吉祥寺是想住的街道吗?》? Spring的Pageable分页剖析 Spring通过springframework.data的@PageableDefault注解分页 华为手机买到现在已经摔了几十次了 骑车在路上也摔了无数次 担心手机会... 醉卧东篱,独对黄花语 不如随分尊前醉:莫负东篱菊蕊黄!这句的意思是什么 请简要分析诗中故园菊所负载的意义 请问大佬有植物王国2012年上映的由大卫·爱登堡主演的高清视频在线观看... 求一首形容红红火火的诗句 考985研究生的条件 ...间茅屋是渔家。主人莫推看花客,囊有青钱酒不赊。的意思 山东爱尔普环保科技有限公司怎么样? 青岛华世洁环保科技有限公司电话是多少? 山东广固环保科技有限公司怎么样? 夜郎自大寓言故事 高枕便知宜夕睡,丰年不叹负春耕.什么意思 情侣戒指什么牌子的好 情侣戒指选购技巧 原来的"掌上论坛"客户端是不是没法用了? 为什么口袋巴士手机客户端从不更新,网页更新比兔子还快?我想知道用哪个... 水泥路用5米槽钢容易转弯么 虚拟乒乓球3内购破解存档怎么用?虚拟乒乓球3内购详解 在越南能给中国家人淘宝买东西吗 VB中编译错误“内存溢出”是什么意思? VB中内存溢出,怎么回事,就这么简单的代码 VB执行时内存溢出 vb生成工程组时一直出现内存溢出怎么办? vb内存溢出怎么解决 VB中点击工程/部件的时候,出现内存溢出,咋回事 VB 启动后显示内存溢出的什么意思啊 win10改名称 植物大战僵尸online冒险里怎么增加植物 曲江书城买书是几折 打卡曲江书城 & 关于读书 推荐:我喜爱的西安书店之曲江书城(2) 曲江书城能带包进去吗 咋取消啊!OPPO R9手机解锁 oppor9手机怎么取消指纹识别 柴门虽设无须开,除却闲云无客来诗句意思? 现在的有钱人喜欢什么娱乐生活 什么是娱乐生活 古代平民的娱乐生活是怎样的?