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

  • 微信网络营销推广引流方案的新思路—渠道篇(微信网络营销案例分析)

    微信网络营销推广引流方案的新思路—渠道篇(微信网络营销案例分析)

  • 百度输入法怎么关闭键盘声音(百度输入法怎么删除输入法的记忆)

    百度输入法怎么关闭键盘声音(百度输入法怎么删除输入法的记忆)

  • 蚂蚁庄园怎样获得福卡(蚂蚁庄园怎样获得饲料)

    蚂蚁庄园怎样获得福卡(蚂蚁庄园怎样获得饲料)

  • 微信怎么黑了(微信怎么黑了屏)

    微信怎么黑了(微信怎么黑了屏)

  • 撤回是ctrl加什么

    撤回是ctrl加什么

  • ipad蓝牙搜不到罗技键盘(ipad蓝牙搜不到红米buds4)

    ipad蓝牙搜不到罗技键盘(ipad蓝牙搜不到红米buds4)

  • 注销qq空间后还能看别人的动态吗(注销qq空间后还能上传相册吗)

    注销qq空间后还能看别人的动态吗(注销qq空间后还能上传相册吗)

  • 惠普bios要更新吗(惠普bios更新有什么好处)

    惠普bios要更新吗(惠普bios更新有什么好处)

  • 微信顶部看不见时间(微信顶部不显示文字怎么设置)

    微信顶部看不见时间(微信顶部不显示文字怎么设置)

  • 快手的聊天室在哪里找(快手的聊天室在哪里打开)

    快手的聊天室在哪里找(快手的聊天室在哪里打开)

  • 苹果6和5s的区别(苹果5s和苹果6的区别在哪里)

    苹果6和5s的区别(苹果5s和苹果6的区别在哪里)

  • 12306候补订单退单多久到账 (12306候补订单退单后未退款)

    12306候补订单退单多久到账 (12306候补订单退单后未退款)

  • 删了好友再加回来火花还在吗(删了好友再加回来看不到朋友圈了)

    删了好友再加回来火花还在吗(删了好友再加回来看不到朋友圈了)

  • 苹果手表如何独立打电话(苹果手表如何独立使用)

    苹果手表如何独立打电话(苹果手表如何独立使用)

  • 怎么弄两个微信软件(怎么弄两个微信分身)

    怎么弄两个微信软件(怎么弄两个微信分身)

  • 手机怎么投屏到电视机(手机怎么投屏到电脑笔记本上)

    手机怎么投屏到电视机(手机怎么投屏到电脑笔记本上)

  • 闲鱼禁言了怎么处理(闲鱼禁言了怎么和买家沟通)

    闲鱼禁言了怎么处理(闲鱼禁言了怎么和买家沟通)

  • iphone11pro max几寸(iphone11pro max是多少寸的)

    iphone11pro max几寸(iphone11pro max是多少寸的)

  • nio和io的区别(nio与io区别)

    nio和io的区别(nio与io区别)

  • 苹果xr有指纹识别吗(iphone xr指纹识别在哪里)

    苹果xr有指纹识别吗(iphone xr指纹识别在哪里)

  • 文件发错群怎么销毁(文件发错群怎么回复)

    文件发错群怎么销毁(文件发错群怎么回复)

  • 通过电话号码能查到个人信息吗(通过电话号码能查快递吗)

    通过电话号码能查到个人信息吗(通过电话号码能查快递吗)

  • 趣步糖果在哪里交易(趣步糖果在哪里买正品)

    趣步糖果在哪里交易(趣步糖果在哪里买正品)

  • 绿钻自动续费怎么打开(绿钻自动续费怎么关)

    绿钻自动续费怎么打开(绿钻自动续费怎么关)

  • xr壁纸不能缩放(xr壁纸不能缩放怎么回事)

    xr壁纸不能缩放(xr壁纸不能缩放怎么回事)

  • smartart图形怎么添加(smartart图形怎么添加下一层)

    smartart图形怎么添加(smartart图形怎么添加下一层)

  • Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单

    Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单

  • 让 new bing 使用 GPT-4 编写一个令人满意的程序全过程赏析

    让 new bing 使用 GPT-4 编写一个令人满意的程序全过程赏析

  • 福建国税网上办税平台登录
  • 出差补贴计入
  • 信用减值损失与坏账准备关系
  • 口罩属于什么经营类别
  • 会计凭证审核的主要内容
  • 小规模机械租赁公司
  • 返佣账务处理
  • 其他业务利润包括哪些科目
  • 增值税普通发票和普通发票的区别怎么交税
  • 控股合并的会计准则
  • 销售商品收入确认的五个条件
  • 事业单位发生管理费用
  • 虚开发票对所得税的影响是怎样的?
  • 自产产品对外捐赠需要缴纳增值税吗
  • 小规模纳税人简易计税方法
  • 营改增后税金由哪几项费用组成
  • 关于税控清卡清算的报告
  • 预充值发票可以列支吗?
  • 公司利润如何提高
  • 营改增房租增值税税率
  • 环境保护税法是什么意思
  • 最新双色球开奖号码
  • win7绝地求生帧数不稳定
  • 销售方开红字发票怎么处理
  • 房地产企业将开什么发票
  • sesvc.exe是什么进程
  • 结算审计流程图
  • 进度条js代码
  • win7旗舰版系统鼠标不能动了
  • 房地产预售收入如何缴纳所得税
  • 发票开具的法定义务是什么
  • vue多入口文件
  • 利用php判断是否为素数
  • php import
  • 承包经营所得税税率表
  • gym版本和render函数
  • 深度学习之concatenate和elementwise操作(二)
  • 小型微利企业的认定标准
  • 处置子公司账务处理
  • 固定资产盘盈为什么计入以前年度损益调整
  • 未开票金额怎么填写
  • 增值税专票只有右上角有发票号码
  • phpcms安装无法连接数据库服务器
  • Discus X 3 门户改造熊掌号网页教程
  • 公司代个人缴纳社保,但不发工资和交税
  • 长期股权投资实现的净利润权益法
  • 金蝶利润表为什么只有累计数没有本月数
  • 企业未分配利润为负数什么原因
  • 财务报表中存货为负数是什么意思
  • 公司欠款利息收据怎么写
  • 主营业务成本包括哪些
  • 房东减免部分房租
  • 技术人员工资计入生产成本吗
  • 安置房买卖过户流程
  • 应交税费科目账务处理
  • 什么情况下使用for循环
  • 营销活动费计入成本吗
  • 关于废止有关排污收费规章和规范性文件的决定
  • 小企业的建账流程分为什么内容
  • 如何防止sql注入及数据安全问题
  • centos设置服务自启动
  • SmartFTP.exe - SmartFTP是什么进程
  • win8启用或关闭windows功能
  • windowsxp的安装方法
  • linuxzen
  • vs图片简单
  • centos安装虚拟机教程
  • win1021h2版本千万别更新
  • 如何使用u盘安装linux
  • android app启动过程
  • Windows搭建代理服务器
  • linux系统下hosts文件详解及配置
  • shell脚本命令行参数
  • js中的json
  • disk指令
  • 常用的js框架有哪些
  • node的express
  • 北京社保退保手续办理
  • 税务评估风险等级是什么
  • 贵州泉源会计服务有限公司花溪店位置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设