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

  • 2k144hz吃鸡要什么显卡才能带动(2k14操作)(2k144吃鸡最低配置)

    2k144hz吃鸡要什么显卡才能带动(2k14操作)(2k144吃鸡最低配置)

  • 微信朋友圈广告评论是自动评论的吗(微信朋友圈广告怎么关闭不了)

    微信朋友圈广告评论是自动评论的吗(微信朋友圈广告怎么关闭不了)

  • 小米智能插座wifi版连接不上(小米智能插座wifi版能控制空调吗)

    小米智能插座wifi版连接不上(小米智能插座wifi版能控制空调吗)

  • 电脑不支持flash怎么办(电脑不支持5gwifi如何解决)

    电脑不支持flash怎么办(电脑不支持5gwifi如何解决)

  • 怎么查看微信被谁投诉举报(怎么查看微信被别人拉黑删除)

    怎么查看微信被谁投诉举报(怎么查看微信被别人拉黑删除)

  • 一段文字怎样发朋友圈(一段文字怎样发朋友圈视频教程)

    一段文字怎样发朋友圈(一段文字怎样发朋友圈视频教程)

  • 预览图是什么意思(预览图制作)

    预览图是什么意思(预览图制作)

  • 酷狗mv为什么不能投屏(酷狗mv为什么不播放)

    酷狗mv为什么不能投屏(酷狗mv为什么不播放)

  • 华为声音变小怎么解决(华为 声音变小)

    华为声音变小怎么解决(华为 声音变小)

  • 华为p30没有声音怎么回事(华为P30没有声音了)

    华为p30没有声音怎么回事(华为P30没有声音了)

  • ipad装不了微信怎么办(ipad1装不了微信)

    ipad装不了微信怎么办(ipad1装不了微信)

  • 淘宝预售商品可以退吗(淘宝预售商品可靠吗)

    淘宝预售商品可以退吗(淘宝预售商品可靠吗)

  • 计算机硬件系统最核心的部件(计算机硬件系统由哪几个部分组成)

    计算机硬件系统最核心的部件(计算机硬件系统由哪几个部分组成)

  • com啥意思(wdbaycom啥意思)

    com啥意思(wdbaycom啥意思)

  • 开启横屏模式啥意思(何为横屏模式)

    开启横屏模式啥意思(何为横屏模式)

  • 怎样关闭实时热搜(关闭实时热点换一批)

    怎样关闭实时热搜(关闭实时热点换一批)

  • 怎么进入品牌喵铺

    怎么进入品牌喵铺

  • 抖音现在怎么没有动态了(抖音现在怎么没有美体功能了)

    抖音现在怎么没有动态了(抖音现在怎么没有美体功能了)

  • 探探注销后对方还能看到自己吗(探探注销后对方还能看到聊天记录吗)

    探探注销后对方还能看到自己吗(探探注销后对方还能看到聊天记录吗)

  • 如何发布视频链接(如何发布视频链接赚钱)

    如何发布视频链接(如何发布视频链接赚钱)

  • iphone6触屏校准在哪里(苹果6怎样校准触摸屏)

    iphone6触屏校准在哪里(苹果6怎样校准触摸屏)

  • oppok3有红外线吗(oppok1手机有红外线功能吗)

    oppok3有红外线吗(oppok1手机有红外线功能吗)

  • 盒马鲜生如何付款(盒马鲜生鲜超市怎么付款)

    盒马鲜生如何付款(盒马鲜生鲜超市怎么付款)

  • 移动端ui框架(好用的移动端ui框架)

    移动端ui框架(好用的移动端ui框架)

  • React中生命周期的讲解(react生命周期执行顺序)

    React中生命周期的讲解(react生命周期执行顺序)

  • 如何理解递延所得税资产和递延所得税负债
  • 如何在天猫平台抢茅台
  • 应交税费待抵扣进项税额
  • 财务软件交多少钱印花税
  • 制单会计岗位实验报告
  • 收到发票冲红怎么做分录
  • 专项扣除三险一金为0
  • 应付票据是资产吗
  • 增值税普通发票有什么用
  • 研发费用计入销售费用
  • 公司被扣货款怎么记账
  • 金税盘处于报税期不能开票是什么意思
  • 流动负债是总负债吗
  • 电汇凭证如何使用
  • 出口不报关账务处理
  • 预收账款年底要确认收入吗
  • 补上年所得税加滞纳金入哪个科目?
  • 进出口货物买卖合同
  • 小企业会计准则2023电子版
  • 2018企业所得税小微企业优惠政策
  • 停车场需要对车辆负责吗
  • 税控发票系统
  • 质保金的税务处理
  • 减免所得税额明细表
  • 专票的有效期是什么意思
  • 预提费用对应
  • 不动产进项抵扣新政策2022
  • 个人借公司款账务处理
  • 公司必须开基本户才能开发票吗
  • 和linux
  • 苹果macOS Big Sur 11.0.1全新系统壁纸
  • php怎么设置中文
  • win10通讯
  • 碧峰峡熊猫基地门票
  • 宝塔面板安装zabbix
  • wordpress用什么语言编写
  • 行政事业单位的主要经济业务活动有哪些
  • 企业所得税的特殊优惠
  • php多条件搜索功能的实现
  • 奥杜邦的祈祷经典语录
  • vue叠化在哪里
  • php自定义变量的方法是
  • 微信小程序开发
  • 发票作废税款什么时候退
  • linux中搭建web服务器
  • 企业从政府部门辞职流程
  • 所得税季度申报表怎么填
  • mysql5.7.27安装与配置
  • 六税一费和六税两费的区别
  • 个人所得税进什么科目
  • 法人怎么从公账上大量取钱
  • 善意取得虚开增值税专用发票处理
  • 对账结算流程
  • 不征收耕地占用税的是
  • 递延所得税如何理解
  • 以前年度损失如何记账
  • 无法收回的其他应收款可以税前扣除吗
  • 成本利润率多少是正常的
  • 商誉的算法
  • 行政事业单位固定资产计提折旧
  • 什么是小微企业
  • 场地租赁费属于什么税收分类编码
  • 安装mysql提示one or more
  • 控制windows外观和工作方式
  • centos 查看服务
  • ubuntu装eclipse
  • linux 修复系统
  • android linux deploy
  • 电脑ip地址设置在哪里
  • 超级按钮条上的设置
  • win7共享设置(详细图文步骤)
  • win8.1玩游戏好不好
  • unity lightmap uv
  • javascript日期加减
  • 详解金球奖之争
  • javascript中math.ceil
  • unity3d导出工程文件
  • 买药开税票多少税率
  • 北京电子税务局实名认证
  • 矿产资源税怎样征收
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设