在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


相关推荐: 千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  Laravel如何使用Sanctum进行API认证?(SPA实战)  Laravel如何记录日志_Laravel Logging系统配置与自定义日志通道  PHP 500报错的快速解决方法  如何快速搭建支持数据库操作的智能建站平台?  Laravel如何处理表单验证?(Requests代码示例)  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Thinkphp 中 distinct 的用法解析  高防服务器如何保障网站安全无虞?  深入理解Android中的xmlns:tools属性  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  安克发布新款氮化镓充电宝:体积缩小 30%,支持 200W 输出  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何快速搭建虚拟主机网站?新手必看指南  中山网站推广排名,中山信息港登录入口?  创业网站制作流程,创业网站可靠吗?  jQuery validate插件功能与用法详解  JavaScript如何实现错误处理_try...catch如何捕获异常?  微信小程序 HTTPS报错整理常见问题及解决方案  ChatGPT怎么生成Excel公式_ChatGPT公式生成方法【指南】  如何快速生成凡客建站的专业级图册?  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  网站制作壁纸教程视频,电脑壁纸网站?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  如何用JavaScript实现文本编辑器_光标和选区怎么处理  Laravel怎么设置路由分组Prefix_Laravel多级路由嵌套与命名空间隔离【步骤】  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel如何使用Gate和Policy进行授权?(权限控制)  Swift中循环语句中的转移语句 break 和 continue  Laravel怎么使用Session存储数据_Laravel会话管理与自定义驱动配置【详解】  北京企业网站设计制作公司,北京铁路集团官方网站?  音乐网站服务器如何优化API响应速度?  Laravel怎么调用外部API_Laravel Http Client客户端使用  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】  如何在阿里云虚拟主机上快速搭建个人网站?  Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能  网站制作大概多少钱一个,做一个平台网站大概多少钱?  IOS倒计时设置UIButton标题title的抖动问题  JavaScript中的标签模板是什么_它如何扩展字符串功能  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何挑选最适合建站的高性能VPS主机?  laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程  如何在Windows环境下新建FTP站点并设置权限?  Laravel路由怎么定义_Laravel核心路由系统完全入门指南