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

  • 荣耀桌面时间日期天气显示怎么设置(荣耀桌面时间日期天气显示怎样设置,长按没有反应)

    荣耀桌面时间日期天气显示怎么设置(荣耀桌面时间日期天气显示怎样设置,长按没有反应)

  • 抖音对方关闭活跃度显示什么(抖音对方关闭活跃状态)

    抖音对方关闭活跃度显示什么(抖音对方关闭活跃状态)

  • 钉钉外勤打卡怎么打的呢(钉钉外勤打卡怎么关)

    钉钉外勤打卡怎么打的呢(钉钉外勤打卡怎么关)

  • 计算机应用都学什么(计算机应用学什么)

    计算机应用都学什么(计算机应用学什么)

  • 手机防盗窥膜原理(手机防盗偷窥膜可以保护屏幕隐私,它的原理跟什么很像)

    手机防盗窥膜原理(手机防盗偷窥膜可以保护屏幕隐私,它的原理跟什么很像)

  • 苹果11max是双卡吗(苹果11max是双卡双待吗)

    苹果11max是双卡吗(苹果11max是双卡双待吗)

  • mate30pro音量键不灵敏(mate30pro音量键不方便)

    mate30pro音量键不灵敏(mate30pro音量键不方便)

  • mac book pro恢复出厂设置会怎样(macbookpro恢复出厂重装系统)

    mac book pro恢复出厂设置会怎样(macbookpro恢复出厂重装系统)

  • 微信怎样把朋友圈的图片和文字再转发到朋友圈(微信怎样把朋友推给别人)

    微信怎样把朋友圈的图片和文字再转发到朋友圈(微信怎样把朋友推给别人)

  • 搜狗是搜狐旗下的产品吗(搜狗搜狐是一家公司?)

    搜狗是搜狐旗下的产品吗(搜狗搜狐是一家公司?)

  • 电话被拉黑后,信息还能发过去吗(电话被拉黑后发信息对方能看到吗)

    电话被拉黑后,信息还能发过去吗(电话被拉黑后发信息对方能看到吗)

  • ddr5什么时候上市(ddr5什么时候才能普及)

    ddr5什么时候上市(ddr5什么时候才能普及)

  • 高德地图收藏在哪里找(高德地图收藏在哪?)

    高德地图收藏在哪里找(高德地图收藏在哪?)

  • 手机充电会有辐射吗(手机充电会辐射到孕妇孩子吗)

    手机充电会有辐射吗(手机充电会辐射到孕妇孩子吗)

  • 苹果a1778是什么意思(苹果a1770是什么意思)

    苹果a1778是什么意思(苹果a1770是什么意思)

  • 华为畅享10s上市时间(华为畅享10plus什么时候上市的)

    华为畅享10s上市时间(华为畅享10plus什么时候上市的)

  • ios13怎么关闭长按(苹果13长按屏幕时长怎么设置)

    ios13怎么关闭长按(苹果13长按屏幕时长怎么设置)

  • 苹果ios11咋创建id(如何创建apple11 id)

    苹果ios11咋创建id(如何创建apple11 id)

  • 小米8怎么打开未知来源(小米8怎么打开空调遥控器)

    小米8怎么打开未知来源(小米8怎么打开空调遥控器)

  • 荣耀20多少w快充(荣耀20多少w快充正常)

    荣耀20多少w快充(荣耀20多少w快充正常)

  •  r17是什么手机(r17是旗舰机吗)

    r17是什么手机(r17是旗舰机吗)

  • 微信对方显示呼叫失败(微信显示对方呼叫,到对方实际没有)

    微信对方显示呼叫失败(微信显示对方呼叫,到对方实际没有)

  • TS 快速入门(ts基础)

    TS 快速入门(ts基础)

  • 增值税怎么做账务处理
  • 商铺属于固定资产还是无形资产
  • 个体户免税金额现在是多少
  • 年初建账考虑要点有哪些
  • 营业执照经营范围增项如何办理
  • 云信付款如何贴现
  • 本期实际抵减税额合计
  • 当月没有发生购销合同还要报印花税吗
  • 承租方支付租金会计科目
  • 存货盘盈属于什么活动
  • 航空货运单可以由谁来填写
  • 报销油费如何写摘要及会计分录怎么做?
  • 应付票据保证金的会计分录怎么写
  • 增值税补交还有没有责任
  • 支付给对方的押金
  • 企业购买预付卡怎么做账
  • 社保证明缴费证明查询在哪查
  • 存货自然灾害损失进项税
  • 开专票还需要提供营业执照?
  • 河道维护费所有权归属
  • 服务外包合同印花税
  • 建安发票税率是多少2011年
  • 个人所得税申报错误如何更正申报
  • 物业公司场地租赁费怎么开票
  • 融资租赁要怎么做
  • 对外投资的风险及对策
  • 公司单位员工餐费怎么算
  • 工会上缴40%的经费法律依据
  • 腾讯手游助手怎么把游戏放到桌面
  • 小微企业免税的会计分录怎么写
  • tersafe.dll
  • 500万元固定资产管理办法
  • 微软windows11iso
  • 固定资产付款流程
  • 发票备注栏可以写详见清单吗
  • 海关滞报金可以税前扣除吗 江苏
  • 浏览器无痕浏览后警察能查到吗
  • 收到银行退回账号短信
  • python生成器定义
  • 增值税农产品免税是哪一条
  • 小规模免增值税政策从什么时候开始
  • 开了银行对公账户要多久
  • 房产税计入管理费用还是营业税金及附加
  • 发票打印错误如何修改
  • 财务报表逾期了两个月有罚款吗
  • java如何导出
  • 公司做的样品展示怎么入账
  • 融资租赁业务需要什么条件
  • 企业所得税包含营业外收入吗
  • 退个税需要提供哪些资料
  • 小规模纳税人专用发票税率
  • 简易计税指的是增值税吗
  • 普通发票的金额包含增值税吗
  • 公司买车可以抵扣企业所得税吗
  • 发票与销售小票有什么区别?
  • 多交增值税退税抵欠怎么处理
  • 估价入库怎么记账
  • 公对公转账货款写成了往来款怎么办
  • 活动费用在哪个科目
  • 公司账户收入多少要扣税
  • 民非企业附加税计提和缴纳分录
  • 年终奖企业应该计入哪个会计年度
  • 有形资产有哪些科目
  • 农民工工资专户怎么发放工资
  • 未实现融资收益借贷方向
  • mysql数据库简单介绍
  • win7安装mysql5.5
  • windefault.exe - windefault是什么进程
  • Linux下使用quota命令管理磁盘空间的实例教程
  • linux用
  • win8系统教程
  • win8系统安装教程图解
  • css中的auto
  • python内置函数open()的参数用来指定打开文本文件
  • Android之Volley
  • [置顶]马粥街残酷史
  • python3解析json
  • java教程 视
  • 消费税要把增值税算进去吗
  • 白酒消费税怎么计算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设