在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


相关推荐: 小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  Python结构化数据采集_字段抽取解析【教程】  Laravel如何实现事件和监听器?(Event & Listener实战)  ,南京靠谱的征婚网站?  Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  动图在线制作网站有哪些,滑动动图图集怎么做?  浏览器如何快速切换搜索引擎_在地址栏使用不同搜索引擎【搜索】  *服务器网站为何频现安全漏洞?  微信小程序 配置文件详细介绍  Laravel PHP版本要求一览_Laravel各版本环境要求对照  高防服务器租用如何选择配置与防御等级?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  Laravel如何使用withoutEvents方法临时禁用模型事件  Laravel如何发送系统通知?(Notification渠道示例)  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  黑客如何利用漏洞与弱口令入侵网站服务器?  如何制作一个表白网站视频,关于勇敢表白的小标题?  C++用Dijkstra(迪杰斯特拉)算法求最短路径  EditPlus中的正则表达式实战(5)  Laravel如何实现多对多模型关联?(Eloquent教程)  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  UC浏览器如何设置启动页 UC浏览器启动页设置方法  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何正确选择百度移动适配建站域名?  北京网站制作的公司有哪些,北京白云观官方网站?  香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化  如何快速重置建站主机并恢复默认配置?  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  Mybatis 中的insertOrUpdate操作  如何构建满足综合性能需求的优质建站方案?  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  深入理解Android中的xmlns:tools属性  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  微信小程序 canvas开发实例及注意事项  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  简单实现Android文件上传  如何用PHP快速搭建高效网站?分步指南  高性能网站服务器配置指南:安全稳定与高效建站核心方案  胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  Win11怎么设置默认图片查看器_Windows11照片应用关联设置