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

  • 抖音怎么删除作品(抖音怎么删除作品中的图片)

    抖音怎么删除作品(抖音怎么删除作品中的图片)

  • vivo手机怎么设置地震提示(vivo手机怎么设置桌面时间日期)

    vivo手机怎么设置地震提示(vivo手机怎么设置桌面时间日期)

  • 电脑主机开不了机怎么办(电脑主机开不了机风扇转一下就停)

    电脑主机开不了机怎么办(电脑主机开不了机风扇转一下就停)

  • 淘宝部分发货的怎么看自动确认收货时间(淘宝部分发货的订单确认收货是一起)

    淘宝部分发货的怎么看自动确认收货时间(淘宝部分发货的订单确认收货是一起)

  • excel表格自动筛选快捷键是什么(excel表格自动筛选怎么操作)

    excel表格自动筛选快捷键是什么(excel表格自动筛选怎么操作)

  • 苹果7相机关不了声音(苹果相机关不了广角模式)

    苹果7相机关不了声音(苹果相机关不了广角模式)

  • 优酷vr网络异常(优酷vrapp连不上网了)

    优酷vr网络异常(优酷vrapp连不上网了)

  • 虚拟运营商有哪些(虚拟运营商有哪些大流量卡)

    虚拟运营商有哪些(虚拟运营商有哪些大流量卡)

  • 华为p40手电筒快捷键是什么

    华为p40手电筒快捷键是什么

  • 美团快送是什么意思(美团快送是什么骑手)

    美团快送是什么意思(美团快送是什么骑手)

  • ipad pro可以当电脑用吗(ipad pro可以当电脑吗)

    ipad pro可以当电脑用吗(ipad pro可以当电脑吗)

  • vivox30pro有红外线功能吗(vivo x30pro有没有红外线功能)

    vivox30pro有红外线功能吗(vivo x30pro有没有红外线功能)

  • 华为情景智能怎么打开(华为情景智能怎么才能识别车票)

    华为情景智能怎么打开(华为情景智能怎么才能识别车票)

  • b365主板和z390区别(b365主板和z390哪个好)

    b365主板和z390区别(b365主板和z390哪个好)

  • win10开机自启动在哪里设置(win10开机自启动文件夹路径)

    win10开机自启动在哪里设置(win10开机自启动文件夹路径)

  • rpa是什么技术(rpa是什么技术方案)

    rpa是什么技术(rpa是什么技术方案)

  • 一加7和一加7t区别(一加7t和一加7p)

    一加7和一加7t区别(一加7t和一加7p)

  • 华为nova3怎么调屏宽度(华为nova3怎么调24小时)

    华为nova3怎么调屏宽度(华为nova3怎么调24小时)

  • 如何将照片作为ppt背景(如何将照片作为表情包)

    如何将照片作为ppt背景(如何将照片作为表情包)

  • 如何设置一级标题格式(如何设置一级标题二级标题三级标题)

    如何设置一级标题格式(如何设置一级标题二级标题三级标题)

  • 怎么查看滴滴出行的行程订单(怎么查看滴滴出行路线记录)

    怎么查看滴滴出行的行程订单(怎么查看滴滴出行路线记录)

  • Waterperry花园,英国牛津郡 (© Lauren Hibbit/Danita Delimont)(water gardens)

    Waterperry花园,英国牛津郡 (© Lauren Hibbit/Danita Delimont)(water gardens)

  • 小狐狸ChatGPT付费创作系统1.6.8独立开源版 + 公众号H5+小程序+VUE源码安装配置详细教程(小狐狸吧)

    小狐狸ChatGPT付费创作系统1.6.8独立开源版 + 公众号H5+小程序+VUE源码安装配置详细教程(小狐狸吧)

  • CSS中哪些属性可继承,哪些不可以?(css中哪些属性可以使用)

    CSS中哪些属性可继承,哪些不可以?(css中哪些属性可以使用)

  • 应交税费课程
  • 现金及现金等价物期末余额
  • 暂估入账后没有交房产税
  • 残疾证挂靠一年多少钱
  • 小规模纳税人取的专票能抵扣吗
  • 发票章没盖在盖章处
  • 向金融企业借款利息支出可以税前扣除吗
  • 装订会计账簿的方法
  • 冲销预付账款后该如何做账务处理呢?
  • 股权转让过户费用
  • 哪些是非累计带薪缺勤?
  • 计提公司所得税分录
  • 税控盘年费去哪里交
  • 开具发票时提示离线发票累计金额超限?教你如何处理
  • 经营性租赁怎么做账
  • 人工智能对财务人员的挑战与机遇
  • 原材料增值税怎么算
  • 资本公积转增股本会计处理
  • 累计折旧属于什么
  • 卖投资性房地产交税
  • 购买机动车怎样抵扣进项税
  • 存货变卖残值取得的收益计入哪个科目
  • 建筑设计公司的账务处理
  • 电池消费税征税范围
  • 非征期不允许上报汇总是怎么回事
  • 个人所得税申报截止时间
  • 苹果macos catalina10.15.7
  • 盘盈的固定资产怎么做账务处理
  • 增值税发票红字发票怎么开具
  • php composer自动加载
  • yii2前后端分离
  • 专利代理服务费计入什么科目
  • 浏览器你
  • thinkphp环境搭建教程
  • 公司是否可以开具在职证明
  • 政府无偿划转股权 要做可行性研究
  • 税管员管多少企业
  • 预付账款的会计处理
  • 收回多发的工资在上缴财政,可以用应缴财政款科目吗
  • 织梦cms怎么样
  • 免费开源okr管理系统
  • 员工个人所得税申报方式选哪个
  • 制造费用结转本年利润吗
  • 交通运输行业属于什么性质
  • 开发研究的定义
  • 月销售额不超过15万的免征增值税
  • 润滑油消费税征收环节税屋
  • 供货方代垫运费计入什么科目
  • 其他应收款坏账准备计提标准
  • 会计准则规定了什么
  • 工程没钱也没有工资
  • 供应商退回来的钱应走哪个科目
  • 如何结转完工产品成本和已销产品成本
  • 公账钱怎么取出
  • 建账基本要求
  • sqlserver数据库恢复挂起状态
  • Windows 7 64位系统手动添加Editplus到鼠标右键的方法
  • win7系统的启动项在哪里
  • Linux配置防火墙端口
  • executor进程
  • mmtray2k.exe有什么作用 是什么进程 mmtray2k进程查询
  • 深入剖析典型案例
  • android环境搭建教程
  • shell脚本 $?
  • opengl mc
  • shell中数组如何定义
  • unity3d最新
  • javascript常用语法
  • python xml dom
  • node.js 微信小程序
  • shell脚本 su
  • 安卓全局替换
  • jquery 画图
  • jquery导入
  • flask框架数据可视化
  • 江苏税务个人所得税app怎么下载不了?
  • 落地和全包一样吗
  • 有发票代码和发票号码能下载到电子发票吗
  • 四川省地方税务局公告2018年第1号
  • 企业租入房子用交税吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设