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

  • 苹果xs max怎么关闭所有应用程序(苹果xsmax怎么关机)

    苹果xs max怎么关闭所有应用程序(苹果xsmax怎么关机)

  • 用剪映怎么给视频加边框(用剪映怎么给视频加字幕)

    用剪映怎么给视频加边框(用剪映怎么给视频加字幕)

  • 抖音没有公会提成多少(抖音直播没有公会提成在哪里查看)

    抖音没有公会提成多少(抖音直播没有公会提成在哪里查看)

  • vulkanrt是什么软件(vulkan什么软件)

    vulkanrt是什么软件(vulkan什么软件)

  • 路由器断流怎么解决(无线路由器 断流)

    路由器断流怎么解决(无线路由器 断流)

  • 在word标准模板中,正文的默认中文字体为(在word标准模板中正文的默认中文字体)

    在word标准模板中,正文的默认中文字体为(在word标准模板中正文的默认中文字体)

  • oppo系统更新很卡(oppo系统更新太慢了)

    oppo系统更新很卡(oppo系统更新太慢了)

  • fastb00t模式是什么意思(fastb00t mode)

    fastb00t模式是什么意思(fastb00t mode)

  • a52处理器是多少(a52s参数处理器)

    a52处理器是多少(a52s参数处理器)

  • 手机开不了热点怎么回事(为什么小米手机开不了热点)

    手机开不了热点怎么回事(为什么小米手机开不了热点)

  • 怎么设置自定义闹钟铃声(怎么设置自定义图标)

    怎么设置自定义闹钟铃声(怎么设置自定义图标)

  • 语音激活阈值什么意思(语音激活阈值啥意思)

    语音激活阈值什么意思(语音激活阈值啥意思)

  • 手机可以看电视频道吗(手机可以看电视的软件)

    手机可以看电视频道吗(手机可以看电视的软件)

  • 图形的表示方法有两种(图形表示的两种方式)

    图形的表示方法有两种(图形表示的两种方式)

  • iphonex和xs区别尺寸(iphonex跟xs区别外观)

    iphonex和xs区别尺寸(iphonex跟xs区别外观)

  • 华为怎么弄多任务(华为怎么弄多任务窗口)

    华为怎么弄多任务(华为怎么弄多任务窗口)

  • vivo手机高清通话功能(vivo手机高清通话在哪里找到)

    vivo手机高清通话功能(vivo手机高清通话在哪里找到)

  • 苹果x像素多少万(苹果14像素多少)

    苹果x像素多少万(苹果14像素多少)

  • 充电宝充满了不拔会爆吗(充电宝充满了不用会耗电吗)

    充电宝充满了不拔会爆吗(充电宝充满了不用会耗电吗)

  • 小米手环4和荣耀手环4对比(小米手环4荣耀手环4)

    小米手环4和荣耀手环4对比(小米手环4荣耀手环4)

  • ps怎么反白(ps怎么反白字)

    ps怎么反白(ps怎么反白字)

  • oppo识屏怎么关闭(oppoa9怎么关闭识屏)

    oppo识屏怎么关闭(oppoa9怎么关闭识屏)

  • 手机电量怎么显示数字(手机电量怎么显示在桌面)

    手机电量怎么显示数字(手机电量怎么显示在桌面)

  • qq怎么看是不是被删了(qq怎么看是不是单向好友)

    qq怎么看是不是被删了(qq怎么看是不是单向好友)

  • 王者荣耀电脑版百里守约怎么操作?(王者荣耀电脑版怎么键盘操作)

    王者荣耀电脑版百里守约怎么操作?(王者荣耀电脑版怎么键盘操作)

  • 苹果手机清理内存垃圾清理教程(苹果手机清理内存怎么清理微信内存)

    苹果手机清理内存垃圾清理教程(苹果手机清理内存怎么清理微信内存)

  • 所得税汇算清缴调整项目
  • 交城市维护建设税填什么凭证
  • 企业收到购买标书的增值税专用发票可以抵扣吗?
  • 非盈利组织收到投资款如何做账
  • 国际贸易公司注册需要什么条件海南
  • 专项土地补偿款怎么入账?
  • 安全费用提取使用管理办法2022 136
  • 借款合同的印花税税率
  • 营业执照的注册地址怎么填
  • 买了两个月社保能用多少医药费
  • 非独立核算的分公司是什么意思
  • 增值税普通发票怎么开
  • 外贸企业购买生产车辆
  • 企业股权投资损失
  • 税务领取发票后怎么操作
  • 事业单位没有税号 选个人可以吗
  • 年末利润分配会计处理
  • 长期待摊费用期末在借方还是贷方
  • 培训费发票模板
  • 新版win10任务栏
  • 所有者权益会计要素包括
  • 土地增值税清算管理规程
  • 员工的通讯费怎么报销
  • php excel导入数据
  • php 二进制转十六进制
  • 补缴税款后还能退税吗
  • php使用什么开发工具
  • extract php函数
  • 应交增值税缴纳后入什么费用
  • 民营医院发票样式
  • 开票系统在哪
  • 企业应设置的账簿包括什么
  • 十年磨一剑的下一句幽默
  • 企业结售汇业务需要做什么
  • access2016备注型
  • 实收资本与资本公积之和小于实收资本
  • 会计新准则2020
  • 企业所得税固定资产的计税基础
  • 企业接受捐赠增值税处理
  • 付的房屋租金计入什么会计科目
  • 公司买的茶叶怎么入账
  • 租金收入会计科目
  • 哪些发票可以报销哪些不可以
  • 制造费用转入生产成本摘要怎么写
  • 购买方已认证销售方作废
  • 房屋租赁税按什么收
  • 单位的对公账户有利息吗
  • 公摊水电费计入什么科目
  • 保险增值税发票是什么
  • 销项负数发票如何勾选
  • 工会经费是什么凭证
  • 什么计提折旧什么不计提折旧
  • mac安装mysql没看见初期密码
  • macos mysql
  • freebsd常用命令
  • 必应big
  • ubuntu系统怎么用
  • 如何在ubuntu下安装和配置gcc并用C语言
  • 在苹果电脑上怎么下载软件
  • centos7查看运行级别
  • scheduler.exe - scheduler是什么进程 有何作用
  • win8开始菜单在右边
  • 第一个闹钟
  • redis开机自动启动linux
  • python中的文件读写
  • cocos2dx游戏开发
  • jquery时间戳转换日期格式
  • JavaScript中字符串模板
  • Linux bash Shell中的变量类型详解
  • javascriptz
  • 深入理解新发展理念,推进供给侧结构性改革
  • js判断浏览器内核和版本
  • javascripr
  • python继承的主要目的
  • 西安市电子税务局
  • 总包发票税率
  • 耕地建仓库属于违规
  • 合肥税务网几时成立的
  • 重庆电子税务局app下载
  • 太原市小店区电影院营业时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设