当前位置: 首页 > 知识库问答 >
问题:

JPQL中的限制子句备选项是什么?

陈欣荣
2023-03-14
SELECT * FROM students ORDER BY id DESC LIMIT 1;
@Query("SELECT s FROM Students s ORDER BY s.id DESC LIMIT 1")

Students getLastStudentDetails();

看来LIMIT子句在JPQL中不起作用。

根据JPA文档,我们可以使用setmaxresults/setfirstresult,谁能告诉我如何在上面的查询中使用它呢?

共有1个答案

仉俊能
2023-03-14

您使用的是JPQL,它不支持像这样限制结果。使用本机JPQL时,应该使用setmaxresults来限制结果。

但是,您使用的是Spring Data JPA,这基本上使它非常容易实现。请参阅《参考指南》中关于如何根据查询限制结果的内容。在您的情况下,下面的find方法将完全符合您的要求。

findFirstByOrderById();

您还可以在查询中使用pageable参数,而不是limit子句。

@Query("SELECT s FROM Students s ORDER BY s.id DESC")
List<Students> getLastStudentDetails(Pageable pageable);
getLastStudentDetails(PageRequest.of(0,1));
 类似资料:
  • 问题内容: 可以在SQL IN子句中放置1000多个项目吗?我们一直在遇到无法处理Oracle数据库的问题。 如果是的话,我们如何在SQL IN子句中放置1000多个项目? 如果没有,我还能做什么? 问题答案: 您应该将IN子句转换为INNER JOIN子句。 您可以像这样转换查询 在另一个查询中 您还将获得很多性能

  • 问题内容: 如何限制从数据库检索到的结果数? 问题答案: 您可以这样尝试,以明确获取10个结果。 如果后端支持,它将自动在后端创建本机查询以检索特定数量的结果,否则将在获取所有结果后进行内存限制。

  • 我对< code>where子句中的case语句有一些问题。如果有人知道如何解决这个问题,请帮助我!谢谢你。 下面是日志中的错误: 原因:org.hibernate.hql.internal.ast.QuerySyntaxException: 意外的 AST 节点: 和靠近第 1 行, 列 589 [从 com.itengine.bettinggateway.dao.事件中选择 e.事件 tp.事

  • 问题内容: 如何限制JPQL命名查询的选择查询?我需要在查询级别本身而不是在Java层中完成限制!!!我正在尝试使用 但徒劳!!! 请建议 问题答案: 没有提供限制查询的机制。这通常是通过使用上的方法来实现的。如果必须避免在Java代码中指定此内容,则可以在包含查询并执行限制的数据库中进行查看。然后像将表一样将实体映射到此视图。 例:

  • 我有基于spring boot 1.2.3的应用程序。其中一个模型非常具体:包含枚举列表。当我试图调用spring jpa查询时,sql的一部分消失[C.categories IN(:category)被替换为(.IN(?))]。我想这可能是图书馆的一些问题,或者我做错了什么。 你知道怎么解决这个问题吗? 目标模型包含: 枚举模型:

  • 记录具有id和名称 带有@Convert的DocumentModel 记录转换器 如果recordIds有多个值(例如:docId=1),即使: 嵌套选择不工作 IN子句有和没有()不工作 子句的成员不工作 导致本机SQL直接无法工作 @公式不工作 而且问题似乎是记录应该是单引号-逗号分隔的,而不仅仅是逗号分隔的,因为它们是字符串。(本机SQL查询在这种情况下工作)