位置: IT常识 - 正文

基于JpaSpecification实现的复杂分页查询(基于个人同意处理个人信息的个人什么撤回其同意)

编辑:rootadmin
一、编写JPA复杂分页查询由来 ​ 新公司项目中使用的ORM框架为JPA框架,但是我们后端写的分页查询接口都各不相同。存在扩展性差、支持的查询类型单一、无法复用等问题。 ​ 所以我在写分页查询的进行了一些设计,将分页查询设计成了可拓展、功能复杂的一个公共分页查询方法。该公共方法所有使用JPA框架的项 ... 一、编写JPA复杂分页查询由来

推荐整理分享基于JpaSpecification实现的复杂分页查询(基于个人同意处理个人信息的个人什么撤回其同意),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:基于专业性的家校双向互动,需要家长的学校教育参与,基于专业性的家校双向互动,需要家长的学校教育参与,基于专业性的家校双向互动,需要家长的学校教育参与,基于stm32的毕业设计,基于专业性的家校双向互动,需要家长的学校教育参与,基于网络创新形成的大数据的最突出特征是什么?( ),基于专业性的家校双向互动,需要家长的学校教育参与,基于核心素养下的大单元教学设计,内容如对您有帮助,希望把文章链接给更多的朋友!

​新公司项目中使用的ORM框架为JPA框架,但是我们后端写的分页查询接口都各不相同。存在扩展性差、支持的查询类型单一、无法复用等问题。

​所以我在写分页查询的进行了一些设计,将分页查询设计成了可拓展、功能复杂的一个公共分页查询方法。该公共方法所有使用JPA框架的项目都可以使用。

二、设计思路2.1 、请求参数设计

​首先复用性高,首先想到使用反射或者泛型来实现。

​复杂的查询类型,可以想到的精确查询、模糊查询、批量查询、段查询这些。

基于JpaSpecification实现的复杂分页查询(基于个人同意处理个人信息的个人什么撤回其同意)

​除了查询功能支持,还需要有分页相关的参数,然后还要能够支持排序功能。

​所以再设计分页接口请求参数时需要考虑能够满足上面能够功能,最终设计出来的分页请求参数PageParam如下。

2.2、处理请求参数

​由于使用的是JPA框架,用过这个框架的同学都知道这个框架的查询都是通过实现JpaRepository<T, ID>接口来完成的。下面列举一下常用的查询手段,

​1、通过Example.of()构造查询对象,这个只能进行精确查询。

​2、通过方法命名形式进行查询,eg findAllByxxxxAndxxxxInAndxxxxIsTrue()。这个支持的查询很多但是对命名规范有要求且如果查询条件过多,方法名就很长很长了。

​3、使用@Query完成较为复杂的查询,方法名不会很长。但是扩展性、复用性差,该查询条件就得改动查询方法。

​4、Specification,这个就是本文实现的关键,通过Specification构造复杂查询条件进行查询。如果不了解Specification的用法建议先去了解一下其用法在继续浏览下文。

​具体构造实现请跳转构造查询条件

三、实际使用

​处理完成之后实际处理起来就比较简单了。如果还有什么疑问可以邮件私我,邮箱号在最下面。

/** * 分页查询 * @param pageParam 查询条件 * @return */@Overridepublic Page<XXXXVO> page(PageParam<XXXXVO> pageParam) { XXXXVO vo = pageParam.getVo(); pageParam.getSorts().put("updateDate", JpaUtils.SORT_DESC); if (null == vo) { vo = new XXXXVO(); } Pageable pageable = jpaUtils.getPageable(pageParam); //vo转po XXXXPO entity = DozerUtil.transfor(vo, XXXXPO.class); //这个就是前面实现的构造查询条件方法 Specification<XXXXPO> spec = jpaUtils.getSpec(entity, pageParam); //dao接口用过jpa的都清楚,实现了JpaRepository用来的接口 //如果你的dao没有这个方法,dao可以实现一个自己
本文链接地址:https://www.jiuchutong.com/zhishi/304559.html 转载请保留说明!

上一篇:python运算符的优先级规则(Python运算符的优先级别)

下一篇:phpcms v9数据库在哪(php数据库网址)

  • 影响营销推广效果的限制性因素是什么(影响营销推广效应的因素)

    影响营销推广效果的限制性因素是什么(影响营销推广效应的因素)

  • 华为录屏怎样隐藏白点(华为录屏怎样隐藏白点,软件下载)

    华为录屏怎样隐藏白点(华为录屏怎样隐藏白点,软件下载)

  • 微信电子证件可以支持哪些证件(微信电子证件可以更改吗)

    微信电子证件可以支持哪些证件(微信电子证件可以更改吗)

  • 华为的云空间和云盘是一回事吗(华为的云空间和真我的云空间能直接)

    华为的云空间和云盘是一回事吗(华为的云空间和真我的云空间能直接)

  • ip地址可以随便改吗(ip地址可以随便指定吗)

    ip地址可以随便改吗(ip地址可以随便指定吗)

  • 华为mate30pro耳机插上还是外放(华为mate30pro耳机孔在哪在哪里)

    华为mate30pro耳机插上还是外放(华为mate30pro耳机孔在哪在哪里)

  • 抖音极速版怎么提现到微信(抖音极速版怎么填写别人的邀请码)

    抖音极速版怎么提现到微信(抖音极速版怎么填写别人的邀请码)

  • blued发不出去消息怎么办(blued不能发送消息)

    blued发不出去消息怎么办(blued不能发送消息)

  • 天猫和天猫国际的区别(天猫和天猫国际哪个更好)

    天猫和天猫国际的区别(天猫和天猫国际哪个更好)

  • ipad录音功能在哪里找(ipad 录音)

    ipad录音功能在哪里找(ipad 录音)

  • 淘宝如何取消开抢提醒(淘宝如何取消开店铺)

    淘宝如何取消开抢提醒(淘宝如何取消开店铺)

  • 红米note8有nfc功能吗(红米note8的nfc)

    红米note8有nfc功能吗(红米note8的nfc)

  • 9400f支持3200内存吗(9400f用3000hz内存)

    9400f支持3200内存吗(9400f用3000hz内存)

  • avi格式用什么播放器(avi格式用什么播放器打开苹果手机)

    avi格式用什么播放器(avi格式用什么播放器打开苹果手机)

  • 魅族live什么水平(魅族live手机推得动吗)

    魅族live什么水平(魅族live手机推得动吗)

  • 手机给另一台手机充电(手机给另一台手机刷机无root)

    手机给另一台手机充电(手机给另一台手机刷机无root)

  • 手机休眠状态在哪设置(手机休眠状态在哪设置vivo)

    手机休眠状态在哪设置(手机休眠状态在哪设置vivo)

  • 为什么微信收款受限制(为什么微信收款语音播报延迟)

    为什么微信收款受限制(为什么微信收款语音播报延迟)

  • 天猫超市如何退货(天猫超市如何退款)

    天猫超市如何退货(天猫超市如何退款)

  • s10和s10e区别(三星s10和s10e区别)

    s10和s10e区别(三星s10和s10e区别)

  • win7系统输入法切换不了的解决方法(win7系统输入法切换快捷键)

    win7系统输入法切换不了的解决方法(win7系统输入法切换快捷键)

  • 电脑怎么设置色盲症颜色滤镜? win10系统颜色滤镜的开启方法(电脑怎么设置色盲模式)

    电脑怎么设置色盲症颜色滤镜? win10系统颜色滤镜的开启方法(电脑怎么设置色盲模式)

  • 机械费可以计入劳务单价吗
  • 分公司不独立核算怎么做账
  • 接受捐赠计入什么费用
  • 应付职工薪酬期初余额在哪方
  • 在建工程 费用
  • 出差出了事故怎么处理
  • 报废资产处置收入怎么计税
  • 房屋建筑物评估技术鉴定表
  • 营业执照的注册地址怎么填
  • 应付账款预收账款
  • 固定资产损失如何计提
  • 旅行社 增值税
  • 投资收益率如何确定
  • 出口企业增值税怎么算
  • 股东入资印花税怎么计算
  • 票据单据较多,费用报销单一张不够填怎么办?
  • 1697507434
  • 开票金额比收入高怎么办
  • 应收票据的贴现利息应计入
  • 长期负债在报表哪里看
  • 月末计提固定资产折旧时,应借记
  • php 静态变量
  • 戛纳,法国 (© Manjik Photography/Alamy)
  • php imagecreatetruecolor 创建高清和透明图片代码小结
  • 分红率与股息率有啥区别
  • 应缴纳消费税会增加吗
  • 工资薪金所得具体包括哪些
  • vue中el-dialog
  • 用tomcat部署web项目
  • 什么情况借钱
  • vue 跳转页面
  • 一文详解卡尔曼人物形象
  • 净化器 ccm
  • blat命令
  • python设置配置文件
  • python 如何调用c
  • 关于差额征税的账务处理
  • 收回款项的会计处理分录
  • 区块管理办法
  • 帝国cms栏目自定义字段
  • 帝国cms8.0
  • 小规模企业购入原材料会计分录
  • 应收账款余额贷方
  • 打印银行电子回单有断号
  • 城建税的征收范围不包括农村
  • 长期股权投资转让收益需要交增值税吗
  • 法人如何网上申请辞职手续
  • 子公司向母公司交利润 需要纳税吗
  • 上市公司限制性股票个人所得税
  • 营业税金及附加税率
  • 从农民个人手里取出钱
  • 办公设备维修费会计分录
  • 主营业务利润率反映了企业的什么能力
  • 公司成立前的费用发票可以入账吗
  • 投资收益怎么做帐
  • centos 7安装教程
  • 分页式存储管理代码
  • ubuntu怎么更改用户名
  • 苹果mac系统怎么截屏快捷键
  • win7注册表修改开机密码
  • macos如何新建文件
  • splash.exe - splash是什么进程 有什么作用
  • gitlab离线安装 linux
  • win8怎么清空电脑只剩系统
  • win8笔记本无法更新正在撤销更改
  • 网卡被禁用一启动就死机
  • win7怎么删除右键菜单
  • win7关闭文件夹和内容一起显示
  • 移动宽带解绑怎么办理
  • jquery设置滚动条
  • 利用的近义词
  • javascript中的this属性
  • 基于javascript的毕业设计
  • unity做app
  • 深入理解javascript特性
  • javascript怎么弄
  • 生产变压器设备
  • 青岛市高新区是红岛吗
  • 重庆税务查询企业信息查询系统
  • 国税软件下载
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设