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中添加参数

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 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 暂时还未对开窗函数给予支持. 开窗函数简介:与聚合函数一样,开窗函数也是对行集组进行聚合计算,但是它不像普通聚合函数那样每组只返回一个值

随机推荐