JPA原生SQL(自定义SQL)分页查询逻辑详解
目录
- JPA原生SQL(自定义SQL)分页查询
- 经过测试下面方法可以
- pageable对象里定义排序的字段
- JPA原生SQL分页查询踩坑记录
- 1.问题简述
- 2.解决方案
JPA原生SQL(自定义SQL)分页查询
JPA自己写SQL查询的话,分页还稍微麻烦
经过测试下面方法可以
@Query(nativeQuery = true, value = "select * from goods where " + " codeName like CONCAT('%',?1,'%') and order by ?w#{#pageable}") Page<Goods> findByName(String name, Pageable pageable);
pageable对象里定义排序的字段
Pageable pageable = new PageRequest(pageNumber, pageSize,Sort.Direction.DESC, "id");
JPA原生SQL分页查询踩坑记录
1.问题简述
JPA 分页查询这个很简单,只要在接口上加上一个参数 Pageable
比如
但是 仔细看 我自定义的 SQL 这里用了 a.* 来只获取一张表的字段 .
但是他生成的 SQL 语句就成了.
这样就导致了 查询异常.
2.解决方案
1.指定count的字段
在@Query 注解中添加一个参数
然后,生成的SQL语句就是
2.指定count的查询语句
同样也是 @Query中添加参数
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Spring Data JPA带条件分页查询实现原理
最新Spring Data JPA官方参考手册 Version 2.0.0.RC2,2017-07-25 https://docs.spring.io/spring-data/jpa/docs/2.0.0.RC2/reference/html/ JPA参考手册 (找了半天, 在线版的只找到这个) https://www.objectdb.com/java/jpa Spring Data JPA的Specification类, 是按照Eric Evans的<领域驱动设计>书中Specificat
-
Spring Data JPA使用JPQL与原生SQL进行查询的操作
1.使用JPQL语句进行查询 JPQL语言(Java Persistence Query Language)是一种和SQL非常类似的中间性和对象化查询语言,它最终会被编译成针对不同底层数据库的SQL语言,从而屏蔽不同数据库的差异. JPQL语言通过Query接口封装执行,Query 接口封装了执行数据库查询的相关方法.调用 EntityManager 的 Query.NamedQuery 及 NativeQuery 方法可以获得查询对象,进而可调用Query接口的相关方法来执行查询操作. JPQ
-
JPA多条件复杂SQL动态分页查询功能
概述 ORM映射为我们带来便利的同时,也失去了较大灵活性,如果SQL较复杂,要进行动态查询,那必定是一件头疼的事情(也可能是lz还没发现好的方法),记录下自己用的三种复杂查询方式. 环境 springBoot IDEA2017.3.4 JDK8 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0&q
-
JPA原生SQL(自定义SQL)分页查询逻辑详解
目录 JPA原生SQL(自定义SQL)分页查询 经过测试下面方法可以 pageable对象里定义排序的字段 JPA原生SQL分页查询踩坑记录 1.问题简述 2.解决方案 JPA原生SQL(自定义SQL)分页查询 JPA自己写SQL查询的话,分页还稍微麻烦 经过测试下面方法可以 @Query(nativeQuery = true, value = "select * from goods where " + " codeName like CONCAT('%',?1,'%')
-
SpringBoot整合PageHelper实现分页查询功能详解
前言 本文介绍的是MyBatis 分页插件 PageHelper,如果你也在用 MyBatis,建议尝试该分页插件,这一定是最方便使用的分页插件.分页插件支持任何复杂的单表.多表分页. 官方文档:https://pagehelper.github.io/ 项目地址:https://github.com/pagehelper/Mybatis-PageHelper 使用方法 导入依赖 在中央仓库sonatype中搜索 pageHelper,找到 pagehelper-spring-boot-star
-
mysql、mssql及oracle分页查询方法详解
本文实例讲述了mysql.mssql及oracle分页查询方法.分享给大家供大家参考.具体分析如下: 分页查询在web开发中是最常见的一种技术,最近在通过查资料,有一点自己的心得 一.mysql中的分页查询 注: m=(pageNum-1)*pageSize;n= pageSize; pageNum是要查询的页码,pageSize是每次查询的数据量, 方法一: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返
-
Java基础开发之JDBC操作数据库增删改查,分页查询实例详解
对数据库的操作无非就是增删改查,其中数查询操作最为复杂,所以将查询单独讲解,我这里用的Mysql数据库 增删改查操作 分页查询操作 1.查询结果以list返回 2.查询结果以jsonArray返回 3.查询总记录条数 先看一下相关的配置信息 public static final String USER_NAME = "root"; public static final String PWD = "123456789"; public static final S
-
深入SQL Server 跨数据库查询的详解
语句SELECT * FROM 数据库A.dbo.表A a, 数据库B.dbo.表B b WHERE a.field=b.field"DBO"可以省略 如SELECT * FROM 数据库A..表A a, 数据库B..表B b WHERE a.field=b.fieldSqlServer数据库:--这句是映射一个远程数据库EXEC sp_addlinkedserver '远程数据库的IP或主机名',N'SQL Server'--这句是登录远程数据库EXEC sp_addlinkedsr
-
将自然语言查询转换为SQL代码的AI工具使用详解
目录 介绍 功能 本地安装 使用 仓库地址 介绍 人工智能可以帮助我们实现将自然语言查询和 SQL 代码进行互相转换,这种技术通过自然语言处理(NLP)和机器学习,训练模型来理解和生成自然语言和 SQL 代码之间的映射关系. SQL Translator 是一个使用人工智能将自然语言查询和 SQL 代码互相转换的工具.通过使用 SQL 和自然语言翻译器,你可以简单地用自然语言输入您的查询并获得相应的 SQL 代码,或者输入您的 SQL 代码并获得人类可读的翻译,使你无需了解 SQL 的专业知识,
-
Spring Data Jpa的四种查询方式详解
这篇文章主要介绍了Spring Data Jpa的四种查询方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.调用接口的方式 1.基本介绍 通过调用接口里的方法查询,需要我们自定义的接口继承Spring Data Jpa规定的接口 public interface UserDao extends JpaRepository<User, Integer>, JpaSpecificationExecutor<User> 使用这
-
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
PHP天生支持MySQL,但是有时候也想让它访问SQL Server,该怎么办呢? 最近找了点资料,测试成功了PHP访问SQLSvr的几种情况,限于时间,还没有测试更多不同环境,把测试过的记录如下: 测试环境:win7 x64 sp1,IIS 7.5, Apache 2.4 32位版本,PHP 5.2.6 win32, PHP 5.6.11 win32 ts(线程安全版) 注:由于"Microsoft Drivers for PHP for SQL Server"驱动程序目前只有32位
-
springboot整合mybatis将sql打印到日志的实例详解
在前台请求数据的时候,sql语句一直都是打印到控制台的,有一个想法就是想让它打印到日志里,该如何做呢? 见下面的mybatis配置文件: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-
-
SQL开窗函数的具体实现详解
开窗函数:在开窗函数出现之前存在着很多用 SQL 语句很难解决的问题,很多都要通过复杂的相关子查询或者存储过程来完成.为了解决这些问题,在 2003 年 ISO SQL 标准加入了开窗函数,开窗函数的使用使得这些经典的难题可以被轻松的解决.目前在 MSSQLServer.Oracle.DB2 等主流数据库中都提供了对开窗函数的支持,不过非常遗憾的是 MYSQL 暂时还未对开窗函数给予支持. 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值
随机推荐
- Require.js的基本用法详解
- JavaScript结合PHP实现网页制作中双下拉菜单的动态实现
- java可变参数使用示例
- XHTML-Strict 内允许出现的标签
- 手把手教你搭建ES6的开发运行环境
- FCKeditor添加自定义按钮
- 最基础的Python的socket编程入门教程
- 如何用JS判断两个数字的大小
- python实现计算倒数的方法
- java制作android 日历代码分享
- SQL Server简单查询示例汇总
- jquery获取复选框checkbox的值实现方法
- Actionscript与javascript交互实例程序(修改)
- JS实现鼠标框选效果完整实例
- linux内核select/poll,epoll实现与区别
- 用java WebSocket做一个聊天室
- 安全成交换机的基本功
- vue 通过下拉框组件学习vue中的父子通讯
- 详解Android运行时权限及APP适配方法
- 使用Python实现跳一跳自动跳跃功能