1. jpa中的count小坑

在SpringDataJpa中repository层的@Query注解内写原生sql,如果有传入Pageable分页查询,即分页数据的pageSize大于原生sql查询出的数据,程序会正常运行,因为此时一页就可以包含所有的数据,不需要使用分页。但是一旦pageSize小于等于数据库内的数据,此时一页就装不小所有的数据,jpa就会执行一条count数据,但此时使用的是原生sql,jpa就无法识别,因为其底层使用的是对象的方式。

错误信息回显:

原生sql分页查询出现的问题信息

这个问题可能是jpa底层未进行很好的封装,添加了nativeQuery =true应该就应该在分页查询的时候也依旧使用原生sql,而不应该采用jpa封装好的分页查询数据。

所以此时就需要告诉jpa,分页查询数据的时候,依旧使用原生sql,有两种方式注解内添加countProjection和countQuery,推荐使用countProjection,因为countQuery会重新使用一条sql,这样会导致整个注解内的sql语句太多了。

我贴两张解决方案图:

countProjection解决方案

countQuery解决方案

2. jpa中的like模糊查询

在jpa中使用原生sql,进行模糊查询的时候,需要拼接"%",否则jpa无法识别,无法进行like模糊查询。

错误做法:

like模糊查询错误做法

正确做法:有两种方法sql内使用concat拼接、业务层拼接,concat拼接会导致代码的移植性低,业务层拼接字符串会使代码不美观。

使用mysql的concat区

业务层拼接

jpa原生query_SpringDataJpa使用原生sql的小坑相关推荐

  1. 打砖块小游戏php程序,利用原生js实现html5打砖块小游戏(代码示例)

    本篇文章给大家通过代码示例介绍一下利用原生js实现html5打砖块小游戏的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 前言 PS:本次项目中使用了大量 es6 语法,故对于 ...

  2. php跳一跳小游戏,原生JS实现的跳一跳小游戏完整实例

    本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成 ...

  3. html实现跳跳棋游戏,原生JS实现的跳一跳小游戏完整实例

    本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成 ...

  4. 原生js实现轮播图——小肉包

    使用原生js实现轮播图--小肉包 今天分享一个使用原生JS实现轮播图的案例,并且配上比较详细的过程讲解,欢迎小伙伴的浏览和批评指正.静态效果图如下: 核心思想 将一些图片在一行中平铺,然后计算偏移量再 ...

  5. 使用原生开发高仿瑞幸小程序(一):使用 Vant 组件库和配置多页面

    本文由图雀社区认证作者 曾伟@喵先森 写作而成,图雀社区将连载其 使用原生开发高仿瑞幸小程序系列,点击阅读原文查看作者的 infoQ 链接,感谢作者的优质输出,让我们的技术世界变得更加美好???? 源 ...

  6. golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF

    golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF 遇到的问题 问题代码 问题分析 正确代码 总结 遇到的问题 用mime/multipart ...

  7. Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API

    目录 Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API 一.概述及API 1.JS-SDK是对之前的 WeixinJSBridge 的一个包装 2.JS-SD ...

  8. 云原生思想 — 云原生应用

    目录 文章目录 目录 云原生应用的特征 云原生应用的架构 如何构建云原生应用 云原生应用的特征 普遍可访问(Universal Availability):服务可在任何地方从多前端访问. 高可用性(H ...

  9. 直播回顾|论道原生:云原生时代的中间件

    " 在基础软件领域,中间件与操作系统.数据库并列为三大基础软件.中间件 (Middleware) 是处于操作系统和应用程序之间的一大类软件的统称,主要管理计算资源和网络通信,可以通过屏蔽底层 ...

  10. 【云原生】什么是云原生?云原生篇章序幕

    文章目录 一丶前言 二丶什么是云计算?云计算上半场 三丶什么是云原生,云计算的下半场 理解云原生 微服务 容器化 服务网格 不可变基础设施 DevOps 云原生最佳实践三个层面 CNCF云原生全景图 ...

最新文章

  1. C#枚举系统安装的所有打印机
  2. 在CentOS 6.8上安装Nginx
  3. 用Excel画五线谱!
  4. Juniper EX3400 Rescue configuration is not set
  5. python学生管理系统-python实现学生成绩管理系统
  6. 解惑:为什么云计算和物联网会同时出现——微云网络
  7. Java - 正则表达式的运用(Pattern模式和Matcher匹配)
  8. 【NLP】不讲武德,只用标签名就能做文本分类
  9. 技术干货 | Flutter 混合开发基础
  10. 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?
  11. PHP扩展部署之最佳实践
  12. ML--K-近邻算法
  13. VC2012 正则替换
  14. QT使用AES加密解密
  15. DeFi之道丨告别朝九晚五,一文了解区块链新组织形式DO
  16. 基于帝企鹅算法优化BP神经网络实现数据预测(Matlab代码实现)
  17. Navicat查看密码,忘记密码之解决方案【Java版】
  18. 基于深度学习股票预测系统
  19. arcengine shp数据导入gdb中
  20. c语言在函数内部宏定义,简单讲解C++的内部和外部函数以及宏的定义

热门文章

  1. 拳皇觉醒服务器维护,拳皇全明星拳魂觉醒手游9月26日更新公告_拳皇全明星拳魂觉醒9月26日更新了什么_玩游戏网...
  2. 《数据结构(C语言版)》严蔚敏代码实现———顺序表
  3. cad重新加载php命令,cad撤回命令是什么
  4. Emacs快捷键 转自:http://www.engr.uvic.ca/~dastone/emacs-keys.html
  5. Matlab中的ans小结
  6. virtualbox-修改硬盘的序列号等信息
  7. Windows权限维持
  8. 自行车码表使用说明—SIGMA(西格玛) BC906
  9. python3 加密压缩zip_Python实现加密压缩成RAR或ZIP文件
  10. 两层板如何做阻抗控制呢