我有一个简单的JpaRepository和一个finder,它返回按名为“number”的属性降序排列的记录。“number”属性也是我的实体的@Id。这很好,但是有数千条记录,所以我想返回一个页面而不是列表。
@Repository
public interface ReceiptRepository extends JpaRepository<Receipt, BigDecimal> {
@Query
public List<Receipt> findByStorerOrderByNumberDesc(String storer);
}
如果我将查找器更改为以下内容,则排序不再起作用。我尝试过使用可分页参数的排序功能,但不起作用。还删除了OrderByNumberDesc,但结果相同。
@Repository
public interface ReceiptRepository extends JpaRepository<Receipt, BigDecimal> {
@Query
public Page<Receipt> findByStorerOrderByNumberDesc(String storer, Pageable pageable);
}
EDIT-添加控制器方法
以下是我的控制器方法。
@RequestMapping(method = RequestMethod.GET, produces = {"application/json"})
public PagedResources<Receipt> receipts(Pageable pageable, PagedResourcesAssembler assembler) {
Page<Receipt> receipts = receiptRepository.findByStorer("003845", pageable);
return assembler.toResource(receipts, receiptResourceAssembler);
}
我觉得我错过了一些非常基本的东西。
我使用的是Spring数据JPA 1.5.2和Commons 1.7.2。
谢谢:)
创建分页时将排序添加到分页:
例如。
Pageable pageable ...;
pageable.getSort().and(new Sort(Direction.ASC, "prop1", "prop1"));
或者在Spring MVC中,您可以执行以下操作:
@RequestMapping(method = RequestMethod.GET, produces = {"application/json"})
public PagedResources<Receipt> receipts(@PageableDefaults(sort = { "x",
"y", "z" }, value = 10)Pageable pageable, PagedResourcesAssembler assembler) {
Page<Receipt> receipts = receiptRepository.findByStorer("003845", pageable);
return assembler.toResource(receipts, receiptResourceAssembler);
}
好吧,这很烦人,我真的不知道该怎么解决,所以事情是这样的。 获得了一个返回分页数据的应用程序,如下所示: 检索结果需要花费很长时间。 但是,如果我调用like(使用上面安装的相同可分页对象): 并且存储库上有: 而且,结果马上就会出现。 我假设,对于第一种永远需要的情况,Spring首先检索所有数据(不限制行),然后返回一个带有结果数量信息的页面。 不知道是否与注释有关。 我使用的是2.3.0。顺
我正在考虑将我们传统的jpa/道解决方案迁移到Spring Data。 但是,我们的前端之一是SmartGWT,它们的数据库组件仅使用限制/偏移逐步加载数据,这使得难以使用Pagable。 这会导致问题,因为无法确定限制/偏移量最终是否可以转换为页码。(这可能因用户滚动方式、屏幕大小等而异)。 我查看了切片等,但无法找到在任何地方使用限制/偏移值的方法。 想知道有没有人有什么建议?最理想的情况是,
我想用Spring Data Mongo实现分页。有很多教程和文档建议使用PagingAndSorting Repository,如下所示: 因此,因为PagingAndSorting Repository提供了用于分页查询的api,我可以像这样使用它: 我的问题是这里的findAll方法实际上是在哪里实现的?我需要自己编写它的实现吗?实现StoryRepo的StoryRepoImpl需要实现这个
问题内容: 我正在使用Spring Data JPA,当我用来定义一个 WITHOUT 的查询时,它可以工作: 但是,如果我添加第二个参数,则将无法正常工作,Spring将解析该方法的名称,然后抛出 异常 。这是错误吗? 问题答案: 在Spring论坛上提出了一个类似的问题,指出要应用分页,必须派生第二个子查询。因为子查询引用的是相同的字段,所以您需要确保查询对引用的实体/表使用别名。这意味着您在
我有一个类,它返回一个<代码>列表 在我的存储库中,我有一个可分页对象,它应该从第0页开始每页返回2个项目。它具有以下属性: 然后我创建一个页面 ... 这就是回归的原因: 我通过
我得到了存储库代码: 当我在该查询上运行测试时,我得到了以下Hibernate警告: