位置: 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数据库网址)

  • rx570相当于什么n卡(rx570 相当于)

    rx570相当于什么n卡(rx570 相当于)

  • 苹果xs max双卡双待为什么只有一个能打进(苹果xs max双卡双待吗)

    苹果xs max双卡双待为什么只有一个能打进(苹果xs max双卡双待吗)

  • 三星s10能不能用25瓦快充(三星s10能不能用北斗导航)

    三星s10能不能用25瓦快充(三星s10能不能用北斗导航)

  • 华为屏幕校准在哪里设置(华为屏幕校准在哪里)

    华为屏幕校准在哪里设置(华为屏幕校准在哪里)

  • 华为手机微信运动为什么显示0步(华为手机微信运动怎么显示在桌面)

    华为手机微信运动为什么显示0步(华为手机微信运动怎么显示在桌面)

  • 小米查看电池损耗代码没有mf05(小米查看电池损耗代码 debug)

    小米查看电池损耗代码没有mf05(小米查看电池损耗代码 debug)

  • 电脑上没有word怎么办(电脑上没有word文档 怎么建word)

    电脑上没有word怎么办(电脑上没有word文档 怎么建word)

  • 为什么手机铃声设置成功了还是和以前一样(为什么手机铃声自己更换了)

    为什么手机铃声设置成功了还是和以前一样(为什么手机铃声自己更换了)

  • 苹果换id数据还在吗(更换苹果id原手机数据还会保留么)

    苹果换id数据还在吗(更换苹果id原手机数据还会保留么)

  • 微信返回咋收不到新消息(微信返回咋收不到信息)

    微信返回咋收不到新消息(微信返回咋收不到信息)

  • word页面视图怎么恢复正常(word页面视图怎么删除空白页)

    word页面视图怎么恢复正常(word页面视图怎么删除空白页)

  • 剪映怎么手动添加字幕(剪映怎么手动添加滚动字幕)

    剪映怎么手动添加字幕(剪映怎么手动添加滚动字幕)

  • 手机号如何转网(联通手机号如何注销)

    手机号如何转网(联通手机号如何注销)

  • 金博会是什么(金博会是什么意思lay是什)

    金博会是什么(金博会是什么意思lay是什)

  • 灭屏显示在哪设置(灭屏状态下显示时间怎么设置)

    灭屏显示在哪设置(灭屏状态下显示时间怎么设置)

  • 红米k20pro游戏模式在哪里(红米k20手机的游戏模式怎么设置)

    红米k20pro游戏模式在哪里(红米k20手机的游戏模式怎么设置)

  • oppo辅助功能黄条隐藏(oppo辅助功能黄条已去)

    oppo辅助功能黄条隐藏(oppo辅助功能黄条已去)

  • 微信在哪修改年龄(微信在哪修改年龄信息)

    微信在哪修改年龄(微信在哪修改年龄信息)

  • 华为mate20黑屏显示时间日期(mate20突然黑屏)

    华为mate20黑屏显示时间日期(mate20突然黑屏)

  • 华为鸿蒙系统网易云音乐卡片怎么添加到桌面?(华为鸿蒙系统网速慢怎么解决)

    华为鸿蒙系统网易云音乐卡片怎么添加到桌面?(华为鸿蒙系统网速慢怎么解决)

  • 旧款Mac升级macOS Monterey系统后变砖怎么办?(mac老款设备怎样升级os14)

    旧款Mac升级macOS Monterey系统后变砖怎么办?(mac老款设备怎样升级os14)

  • 【宜搭】低代码开发师高级认证实操题1难点指导(宜搭下载)

    【宜搭】低代码开发师高级认证实操题1难点指导(宜搭下载)

  • 公司股权变更要查账吗
  • 车船税退税办理时限
  • 什么叫抵扣进项
  • 金税盘维护费应该计入什么科目
  • 餐饮业增值税是多少
  • 待转销项税额明细科目核算一般纳税人
  • 计提跌价的存货卖出了
  • 一般纳税企业可以变更小微企业吗
  • 以前年度损益调整会计分录
  • 开发成本可以计增值税吗
  • 对方电子承兑发出多长时间可以到账
  • 一般纳税人的含税收入怎么算
  • 分公司可以合伙吗
  • 店铺不盈利还开吗
  • 财产租赁合同印花税申报期限
  • 开专票和普票的税点
  • 开餐费发票要开具数量和单价吗
  • 仓库间的调拨流程
  • 插值法求利率计算公式
  • 利息怎么算的计算公式举例
  • 税务局备案的企业是什么
  • 个人挂靠公司按揭购车账务怎么处理?
  • 办税员可以增加办税员吗
  • bios设置网卡开启
  • 可转换债券具有债权和股权双重特征
  • 折旧可以计入主体成本吗
  • win10专业版如何改为家庭版
  • 当月认证了发票但没有进行增值税申报
  • 视同销售的八种情况下会计分录怎么做?
  • latex双栏图片
  • 申请专用发票怎么申请
  • 排灯节起源
  • 前端后端选择
  • 滚动开发项目如何做账
  • 职工教育经费可以以后年度结转吗
  • 采用定额法计算产品成本,其程序如何?
  • 个人所得税部分缴纳
  • php设计网页
  • 微信公众号开发php源码
  • 计算机还热门吗
  • 应该如何打造自己
  • 非货币性资产交换和债务重组的区别
  • 土地补偿款会议纪要
  • 什么是电子承诺
  • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
  • sql server 2005 win10
  • 认缴资本怎么填
  • 发票抬头是个人的可以报销吗
  • 进项增值税发票抵扣期限
  • 辅助生产成本应计入什么
  • 日记账怎么设置
  • 建账时必须输入的内容有哪些
  • 会计账簿的含义及其作用
  • mysql5.7.24安装配置教程
  • sql 超时时间
  • win8.1退回win8
  • linux wget命令详解
  • 微软正式推送windows11
  • .bas是什么文件
  • win7系统打开浏览器后突然卡住了
  • win7出现正在启动就不动了
  • Ubuntu 14.10 “Utopic Unicorn”正式发布(附下载)
  • 怎么彻底关闭windows更新
  • win8的系统
  • dos所有命令的命令格式
  • 贪心算法编程题
  • 什么叫懒加载
  • shell脚本 su
  • 从最近两会看苹果和谷歌的最大梦魇
  • js拖拽排序实现思路
  • 福建米其林餐厅有几家
  • 地税总局局长
  • 四川志愿服务注册入口
  • 房地产企业税种认定标准
  • 北京大兴开发区房价
  • 河南助学金申请表
  • 企业营商环境包括哪些内容
  • 国税年收入
  • 小组长的职责及职责
  • 公司业务专用章有法律作用吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设