jpa原生query_SpringDataJpa使用原生sql的小坑
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的小坑相关推荐
- 打砖块小游戏php程序,利用原生js实现html5打砖块小游戏(代码示例)
本篇文章给大家通过代码示例介绍一下利用原生js实现html5打砖块小游戏的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 前言 PS:本次项目中使用了大量 es6 语法,故对于 ...
- php跳一跳小游戏,原生JS实现的跳一跳小游戏完整实例
本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成 ...
- html实现跳跳棋游戏,原生JS实现的跳一跳小游戏完整实例
本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成 ...
- 原生js实现轮播图——小肉包
使用原生js实现轮播图--小肉包 今天分享一个使用原生JS实现轮播图的案例,并且配上比较详细的过程讲解,欢迎小伙伴的浏览和批评指正.静态效果图如下: 核心思想 将一些图片在一行中平铺,然后计算偏移量再 ...
- 使用原生开发高仿瑞幸小程序(一):使用 Vant 组件库和配置多页面
本文由图雀社区认证作者 曾伟@喵先森 写作而成,图雀社区将连载其 使用原生开发高仿瑞幸小程序系列,点击阅读原文查看作者的 infoQ 链接,感谢作者的优质输出,让我们的技术世界变得更加美好???? 源 ...
- golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF
golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF 遇到的问题 问题代码 问题分析 正确代码 总结 遇到的问题 用mime/multipart ...
- Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API
目录 Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API 一.概述及API 1.JS-SDK是对之前的 WeixinJSBridge 的一个包装 2.JS-SD ...
- 云原生思想 — 云原生应用
目录 文章目录 目录 云原生应用的特征 云原生应用的架构 如何构建云原生应用 云原生应用的特征 普遍可访问(Universal Availability):服务可在任何地方从多前端访问. 高可用性(H ...
- 直播回顾|论道原生:云原生时代的中间件
" 在基础软件领域,中间件与操作系统.数据库并列为三大基础软件.中间件 (Middleware) 是处于操作系统和应用程序之间的一大类软件的统称,主要管理计算资源和网络通信,可以通过屏蔽底层 ...
- 【云原生】什么是云原生?云原生篇章序幕
文章目录 一丶前言 二丶什么是云计算?云计算上半场 三丶什么是云原生,云计算的下半场 理解云原生 微服务 容器化 服务网格 不可变基础设施 DevOps 云原生最佳实践三个层面 CNCF云原生全景图 ...
最新文章
- C#枚举系统安装的所有打印机
- 在CentOS 6.8上安装Nginx
- 用Excel画五线谱!
- Juniper EX3400 Rescue configuration is not set
- python学生管理系统-python实现学生成绩管理系统
- 解惑:为什么云计算和物联网会同时出现——微云网络
- Java - 正则表达式的运用(Pattern模式和Matcher匹配)
- 【NLP】不讲武德,只用标签名就能做文本分类
- 技术干货 | Flutter 混合开发基础
- 程序员如何在技术浪潮的更迭中保持较高的成长速度 ?
- PHP扩展部署之最佳实践
- ML--K-近邻算法
- VC2012 正则替换
- QT使用AES加密解密
- DeFi之道丨告别朝九晚五,一文了解区块链新组织形式DO
- 基于帝企鹅算法优化BP神经网络实现数据预测(Matlab代码实现)
- Navicat查看密码,忘记密码之解决方案【Java版】
- 基于深度学习股票预测系统
- arcengine shp数据导入gdb中
- c语言在函数内部宏定义,简单讲解C++的内部和外部函数以及宏的定义
热门文章
- 拳皇觉醒服务器维护,拳皇全明星拳魂觉醒手游9月26日更新公告_拳皇全明星拳魂觉醒9月26日更新了什么_玩游戏网...
- 《数据结构(C语言版)》严蔚敏代码实现———顺序表
- cad重新加载php命令,cad撤回命令是什么
- Emacs快捷键 转自:http://www.engr.uvic.ca/~dastone/emacs-keys.html
- Matlab中的ans小结
- virtualbox-修改硬盘的序列号等信息
- Windows权限维持
- 自行车码表使用说明—SIGMA(西格玛) BC906
- python3 加密压缩zip_Python实现加密压缩成RAR或ZIP文件
- 两层板如何做阻抗控制呢