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

  • 什么是协税护税员
  • 源泉扣税什么意思
  • 生产经营怎么填写
  • 基本存款账户可以换银行吗?
  • 企业对伤残怎么赔偿?
  • 水电费专用发票税率
  • 审核通过的红字发票怎么作废
  • 电子税务局怎么下载电子发票
  • 食堂买菜无发票可以在费用中开支吗
  • 房屋出租需要缴纳个人所得税吗
  • 企业合并相关舞弊风险有哪些
  • 公司转让住房是什么意思
  • 出口退税企业退税时间
  • 赡养老人专项附加扣除可以是爷爷奶奶吗
  • 现金货款退回如何做会计分录呢?
  • 账户未认证
  • 给客户的返点会计分录怎么写
  • 个人出租住房缴纳个税可以扣除房产税吗
  • 在建工程安装工程包括
  • 地税没报税怎么办
  • 企业如何避免风险
  • 代建项目增值税税率
  • 公办幼儿园食堂21项制度
  • 金税盘点了没反应
  • 债务免除的税务处理
  • 完税凭证丢失如何补办
  • 基金赎回未到账可继续买吗?
  • 保险公司的税收是多少
  • 购入样品账务处理
  • 研发费用发票怎么入账
  • 资产减值损失怎么计提
  • 打包贷款和出口信贷的区别和联系
  • 发现以前年度多交增值税怎么申报
  • php实现的一致性是什么
  • win10关闭自动更新方法永久
  • 费用发票开的是跨年的账务处理
  • 期间损益结转有余额
  • 无形资产摊销是什么科目
  • php能开发微信小程序吗
  • 食堂维修费用计什么科目
  • 基于Java+SpringBoot+Vue+uniapp微信小程序零食商城系统设计和实现
  • nslookup命令大全
  • 老板财务报表模板
  • 一般纳税人企业所得税如何计算
  • phpcms使用教程
  • 没有以前年度损益调整怎么办
  • 根据工资总额组成的规定下列哪些列入工资总额的范围
  • 酒店如何控制成本汇报怎么写
  • PostgreSQL ERROR: invalid escape string 解决办法
  • 年终奖可以税前扣除吗
  • 如何查询继续教育
  • 借递延所得税资产贷递延所得税费用
  • 会计学中管理费用是什么
  • 工商年报和税务年报有什么区别
  • 转账错误退款说明
  • 进项转出再转入
  • 企业生育津贴发放细则
  • 认缴出资额承担责任怎么算
  • 242104 税控盘
  • 三证合一后税务怎么办
  • 外贸企业怎么开出口发票
  • 建立明细账的注意事项
  • windows10取消fn功能键
  • 开启 windows server
  • 怎么卸载xp系统
  • 由于您计算机中windows的版本比较
  • dgservice.exe是什么进程
  • 怎么关闭xp系统弹窗
  • mac os 必装软件
  • cocos编程
  • cocos2dx 3.17
  • 队列remove
  • mysql 导出指定表
  • linuxtop命令详解
  • jquery操作样式的方法
  • 失业保险金领取成功
  • 减免税的三种方式
  • 香港pcc价格
  • 企业所得税预缴时间规定
  • 辽宁朝阳丧葬费标准2022
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设