在JPA的@Query注解中使用limit条件(详解)

发布时间 - 2026-01-11 01:45:33    点击率:

在@Query注解注释的JPQL语句中写limit语句是会报错的

unexpected token :limit near line ....

解决方法是讲@Query注解中的limit语句去掉,然后传一个Pageable pageable=new PageRequest(offset,limit)进去

示例代码:

controller

import java.util.List; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RestController; 
 
@RestController 
@RequestMapping(value = "/misaka") 
public class MisakaController 
{ 
  @Autowired 
  private MisakaService misakaService; 
 
  @RequestMapping(value = "/list") 
  public List<Misaka> getBaselineOverview() 
  { 
    return misakaService.getMisaka(); 
  } 
 
} 

service

import java.util.List; 
 
public interface MisakaService 
{ 
  List<Misaka> getMisaka(); 
} 

serviceimpl

import java.util.List; 
 
import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.data.domain.Page; 
import org.springframework.data.domain.PageRequest; 
import org.springframework.data.domain.Pageable; 
import org.springframework.data.domain.Sort.Direction; 
import org.springframework.stereotype.Service; 
 
@Service 
public class MisakaServiceImpl implements MisakaService 
{ 
  @Autowired 
  private MisakaDao misakaDao; 
 
  @Override 
  public List<Misaka> getMisaka() 
  { 
    Pageable pageable = new PageRequest(1, 2, Direction.ASC, "name"); 
    Page<Misaka> misakaPage = misakaDao.search(pageable); 
    List<Misaka> misakaList = misakaPage.getContent(); 
    System.out.println(misakaList); 
    return misakaList; 
  } 
} 

dao

import org.springframework.data.domain.Page; 
import org.springframework.data.domain.Pageable; 
import org.springframework.data.jpa.repository.Query; 
import org.springframework.data.repository.CrudRepository; 
 
public interface MisakaDao extends CrudRepository<Misaka, Long> 
{ 
  @Query("SELECT m FROM Misaka m WHERE m.id>4") 
  Page<Misaka> search(Pageable pageable); 
} 

model

import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.GenerationType; 
import javax.persistence.Id; 
import javax.persistence.Table; 
 
@Entity 
@Table(name = "t_test") 
public class Misaka 
{ 
  @Id 
  @GeneratedValue(strategy = GenerationType.AUTO) 
  private Long id; 
 
  @Column(name = "name") 
  private String name; 
 
  public Long getId() 
  { 
    return id; 
  } 
 
  public void setId(Long id) 
  { 
    this.id = id; 
  } 
 
  public String getName() 
  { 
    return name; 
  } 
 
  public void setName(String name) 
  { 
    this.name = name; 
  } 
 
  @Override 
  public String toString() 
  { 
    return "Misaka [id=" + id + ", name=" + name + "]"; 
  } 
 
} 

数据库t_test

id name
1 m1
2 m2
3 m3
4 m4
5 m5
6 m6
7 m7
8 m8
9 m9

输出

Hibernate: select count(misaka0_.id) as col_0_0_ from t_test misaka0_ where misaka0_.id>4 
Hibernate: select misaka0_.id as id1_29_, misaka0_.name as name2_29_ from t_test misaka0_ where misaka0_.id>4 order by misaka0_.name asc limit ?, ? 
[Misaka [id=7, name=m7], Misaka [id=8, name=m8]] 

以上这篇在JPA的@Query注解中使用limit条件(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# query注解  # limit  # Spring data jpa @Query update的  # 聊聊Spring data jpa @query使用原生SQl  # 需要注意的坑  # 详解Spring Data JPA使用@Query注解(Using @Query)  # JPA @Query时  # 无法使用limit函数的问题及解决  # 给大家  # 希望能  # 这篇  # 报错  # 解决方法  # 小编  # 大家多多  # list  # misakaService 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速生成专业多端适配建站电话?  高性能网站服务器配置指南:安全稳定与高效建站核心方案  google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  Laravel中的withCount方法怎么高效统计关联模型数量  Python图片处理进阶教程_Pillow滤镜与图像增强  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录  消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工  Laravel如何处理文件下载请求?(Response示例)  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Laravel如何升级到最新版本?(升级指南和步骤)  如何在建站宝盒中设置产品搜索功能?  如何在阿里云通过域名搭建网站?  Laravel如何部署到服务器_线上部署Laravel项目的完整流程与步骤  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  详解Android——蓝牙技术 带你实现终端间数据传输  如何在VPS电脑上快速搭建网站?  如何快速搭建FTP站点实现文件共享?  大型企业网站制作流程,做网站需要注册公司吗?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  Android仿QQ列表左滑删除操作  如何快速生成ASP一键建站模板并优化安全性?  Laravel如何发送系统通知?(Notification渠道示例)  新三国志曹操传主线渭水交兵攻略  微信小程序 配置文件详细介绍  WEB开发之注册页面验证码倒计时代码的实现  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  Laravel如何处理和验证JSON类型的数据库字段  如何用wdcp快速搭建高效网站?  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  如何确保FTP站点访问权限与数据传输安全?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  如何在云指建站中生成FTP站点?  微信小程序 wx.uploadFile无法上传解决办法  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何在万网ECS上快速搭建专属网站?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  简单实现jsp分页  Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  如何快速搭建高效WAP手机网站?  如何在IIS服务器上快速部署高效网站?  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  微信小程序 input输入框控件详解及实例(多种示例)  如何快速配置高效服务器建站软件?  中山网站推广排名,中山信息港登录入口?