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

  • vivoy53s处理器是骁龙多少(vivoy53s处理器是天玑与骁龙)

    vivoy53s处理器是骁龙多少(vivoy53s处理器是天玑与骁龙)

  • vivo怎么能让e变回4g(vivo手机如何变声音呢)

    vivo怎么能让e变回4g(vivo手机如何变声音呢)

  • 抖音上陌生人发给我的消息消失了(抖音上陌生人发的私信会自动删除吗)

    抖音上陌生人发给我的消息消失了(抖音上陌生人发的私信会自动删除吗)

  • 华为荣耀20Pro手机手机桌面怎么设置天气日期时间(华为荣耀20pro手机)

    华为荣耀20Pro手机手机桌面怎么设置天气日期时间(华为荣耀20pro手机)

  • 指纹锁隔一会就滴滴响(指纹锁每隔一段时间就失灵)

    指纹锁隔一会就滴滴响(指纹锁每隔一段时间就失灵)

  • 锂电池属于几类危险品(锂电池属于几类危险货物)

    锂电池属于几类危险品(锂电池属于几类危险货物)

  • 剪映怎么把照片做成视频(剪映怎么把照片做成动态视频)

    剪映怎么把照片做成视频(剪映怎么把照片做成动态视频)

  • 淘宝不交保证金的类目(淘宝不交保证金有什么影响)

    淘宝不交保证金的类目(淘宝不交保证金有什么影响)

  • 笔记本鼠标突然不能用了(笔记本鼠标突然变得很迟钝为什么)

    笔记本鼠标突然不能用了(笔记本鼠标突然变得很迟钝为什么)

  • 华为nova6的耳机插孔在哪里(华为nova6的耳机线怎么是圆孔)

    华为nova6的耳机插孔在哪里(华为nova6的耳机线怎么是圆孔)

  • 华为充电器叫什么名称(华为充电器叫什么type c怎么读)

    华为充电器叫什么名称(华为充电器叫什么type c怎么读)

  • 网易云怎么看访客(网易云怎么看访客历史记录)

    网易云怎么看访客(网易云怎么看访客历史记录)

  • 手机怎么相互定位(手机怎样相互定位手机)

    手机怎么相互定位(手机怎样相互定位手机)

  • 小米9pro用4g卡有影响吗(小米9pro双卡上网问题)

    小米9pro用4g卡有影响吗(小米9pro双卡上网问题)

  • 为什么安装不了抖音软件(为什么安装不了QQ)

    为什么安装不了抖音软件(为什么安装不了QQ)

  • 支付宝商家二维码收款怎么弄花呗(支付宝商家二维码在哪)

    支付宝商家二维码收款怎么弄花呗(支付宝商家二维码在哪)

  • win10连不上校园网wifi(win10连不上校园网怎么办)

    win10连不上校园网wifi(win10连不上校园网怎么办)

  • 华为中高强度运动标准(华为中高强度运动心率标准)

    华为中高强度运动标准(华为中高强度运动心率标准)

  • 华为p30充电接口(华为P30充电接口)

    华为p30充电接口(华为P30充电接口)

  • oppok3支持nfc吗(oppok3是否支持nfc)

    oppok3支持nfc吗(oppok3是否支持nfc)

  • 苹果手机接通电话震动怎么设置(苹果手机接通电话后震动)

    苹果手机接通电话震动怎么设置(苹果手机接通电话后震动)

  • dp线是什么(dp线是什么头)

    dp线是什么(dp线是什么头)

  • echarts 定制legend内容,显示和位置(echart设置legend)

    echarts 定制legend内容,显示和位置(echart设置legend)

  • DVWA靶场搭建(dvwa靶场搭建sql注入)

    DVWA靶场搭建(dvwa靶场搭建sql注入)

  • 缴纳印花税的会计凭证
  • 应收账款和应付账款的关系
  • 出口货物发生退运是征税还是免税
  • 建筑劳务适用税率
  • 企业呆账的处理方式
  • 盘盈入库做什么分录
  • 运保佣是什么
  • 复利现值系数和普通年金现值系数关系
  • 进项税当期已转出能调整再抵扣吗?
  • 采购单录入、接收分配会计分录怎么写?
  • 零退税率可以做免税吗
  • 地方教育费附加是什么意思
  • 一般纳税人辅导期预缴
  • 修理费要开税控清单吗
  • 定额发票什么时候失效
  • 附加税交税依据
  • 母公司从子公司借款有何风险
  • 上月销售的货物会计分录
  • 增值税税差调整原因
  • 付货款时从货款中扣除的返利怎样做账?
  • win11 zen1
  • QuickBooks - QuickBooks是什么进程 有什么用
  • fontcreator字间距
  • 使用U盘安装win7出现找不到任何设备驱动程序
  • 盘盈的资产
  • 在windows7中,桌面图标的排列顺序是
  • 其他综合收益属于什么类
  • php页面之间传值
  • php到底是什么
  • 商业一般纳税人标准
  • 期间费用核算内容包括
  • 预提费用的核算有哪些
  • 提取备用金记账凭证图片
  • 旅客运输进项抵扣税率
  • 10qps是多少并发
  • Python 人脸识别系统
  • vue新手教程
  • 消防工程材料费用占比
  • 个体户查账征收个人所得税税率
  • 织梦改logo
  • 个人福利要交税吗
  • 机械租赁公司月薪多少
  • 商品流通企业的含义
  • 出口货物离岸价差异原因说明表在电子税务局的位置
  • 自来水公司水表安装标准
  • 固定资产科目代码是多少
  • sql数据库转换mysql
  • sql server 实例
  • 工程附加税税率
  • 企业哪些进项税不能抵扣
  • 收到一张普通发票怎么做账
  • 销售退货会计分录
  • 接受土地使用权的会计分录
  • 如何将港币兑换成人民币
  • 装修费用是当月支付吗
  • 股权转让的实质
  • 金税盘抵扣在申报表哪填
  • 包装物属于周转材料还是低值易耗品
  • 高新技术企业的税收优惠政策
  • 陈列费收取标准
  • 备查账依据什么登记
  • 工程物资属于存货还是固定资产
  • sqlserver数据库测试工具
  • 如何修改mysql用户名
  • mysql连接数 是针对db还是服务器
  • 守护者联盟单机游戏
  • 如何使用调制解调器
  • Unable to execute dex: Multiple dex files define Lorg/cocos2dx/lib/Cocos2dxAccelerometer
  • &&在js中
  • Python的内置字典数据类型为___
  • 2016年最火的歌曲排行榜前十名
  • python读取linux文件
  • js 类的继承
  • android navigation bar
  • python抓视频保存本地
  • 个体工商户年报补报流程
  • 调查问卷的背景资料怎么写
  • 211学生占全国比例
  • 税收筹划可分为
  • 公司财务专用章的用途
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设