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

Spring数据:自定义查询的极限结果

唐弘益
2023-03-14

在我的Spring Data存储库中,我(必须)使用@Query注释使用自定义查询。我知道我可以限制这样命名查询中的结果数量

Iterable

或者可以通过传递这样的可分页来限制结果的数量

Iterable

但是,在使用自定义@Query注释时,是否有可能实现相同的目标?

提亚

编辑

正如我看到的,我的问题有点混乱,有些模糊:我想要的是在使用自定义查询时限制我得到的结果的数量,这样我就不会

1)需要通过可分页指定结果大小

2)需要使用命名查询来指定结果大小

事实上,我希望在调用方法时,结果数量的限制是完全透明的(因此不传递可分页的<code>代码),并且不依赖Spring数据的命名方案(因为方法的含义/功能最好通过自定义名称来表达)


共有3个答案

堵远航
2023-03-14

我建议添加“By”,但没有参数,它将起作用:

List<Person> findTop100By();
莫泓
2023-03-14

当然,您可以使用@Query对结果进行排序,例如,它是一个JPQL查询。

@Query("SELECT u FROM User u ORDER BY u.name ASC")

可以通过提供PageRequest或直接使用Sort进行进一步的排序。

https://docs . spring . io/spring-data/JPA/docs/current/reference/html/# JPA . query-methods . sorting

华知
2023-03-14

你可以试试这个:

@Entity
@Table(name = "persons") 
public class Person {
    //...
}

@Query(value = "select * from persons limit 50", nativeQuery = true)
List<Person> getFirst50();

不要忘记检查您的SQL服务器是否支持限制关键字。

 类似资料:
  • 在我的数据库中,我有一个具有以下属性的表“CITA”:id,fecha\u hora,description,id\u empleado,id\u cliente。 我还有一个Spring JPA存储库: 我需要这个查询: 我的问题是我不知道我应该把它放在哪里来还给我像地图这样的东西 因为它不起作用: 编辑 如果我试图从我的REST控制器调用estadistic as(),我有一个错误。 这是我的

  • 我有两个实体: ffice.java 电影JAVA 和以下存储库: 现有的查找方法像左连接一样工作,这正是我需要的。但是如何在不保存电影对象的情况下保存周BoxOffice对象?我真的不知道创建周刊BoxofficeLite的想法。现在它给了一个例外 组织。springframework。刀。InvalidDataAccessApiUsageException:org。冬眠TransientPro

  • 我正在尝试将自定义查询添加到Spring Data JDBC CrudRepository,以允许通过备用自然键查找实体。实体有一个 ID,在本例中为 Long,以及一个自然键,即 Reference 类型(基础类型为 UUID)。 我已经创建并注册了从引用到UUID的自定义转换器,反之亦然,并且希望在通过引用查找实体时使用它们。转换在从数据库中提取和存储实体时起作用(Postgres 12.2)

  • 本文向大家介绍Oracle将查询的结果放入一张自定义表中并再查询数据,包括了Oracle将查询的结果放入一张自定义表中并再查询数据的使用技巧和注意事项,需要的朋友参考一下 如下的实际例子代码可以将查询的结果放入到一张自定义表中,同时可以再从这个自定义的表中查询数据:

  • 我有一个实体 及其存储库 注意:如您所见,intValue不是entity类的成员变量。

  • 我通过扩展将REST数据与Panache一起用于生成JAX RESTful Web服务。在Spring land中,有一种query builder机制,允许Spring数据存储库根据自定义方法签名的名称和返回类型生成SQL查询。 我试图用Panache来实现同样的事情,但到目前为止没有成功。