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

Spring Data PageImpl未返回大小正确的页面?

公冶鸣
2023-03-14

我正在尝试使用从数据库检索的对象列表创建一个新的。首先,我从DB中获取所有元素,将其转换为流,然后使用lambda过滤结果。然后我需要一个具有设定数量的元素的页面,然而,实例化一个新的PageImpl似乎并不能返回一个具有正确大小的页面。

下面是我的代码:

List<Produtos> listaFinal;
Stream<Produtos> stream = produtosRepository.findAll().stream();
listaFinal = stream.filter(p -> p.getProdNome().contains("uio")).collect(Collectors.toList());

long total = listaFinal.size();
Page<Produtos> imp = new PageImpl<>(listaFinal,pageable,total);

下面是调试的截图:

我理解如何使用Page返回数据的一部分。我展示的代码是我试图使用lambda表达式来筛选我的集合。问题是我想使用Java8的lambda通过Spring Data JPA查询数据库。Im曾经使用VB.NET的和Entityfunction(x)查询表达式,并想知道如何使用Spring JPA执行同样的操作。

在我的存储库中,使用的Im扩展了jparepository ,querydslpredicateexecutor ,使我能够访问findall(谓词,可分页)。但是,谓词不是键入的,所以我不能简单地在查询中使用p->p.getProdnome().contains(“uio”)。我正在使用SQL Server和Hibernate。

共有1个答案

封昊天
2023-03-14

扩展一下Stites的回答,一个PagedListHolder是一种方法,下面是方法:

List<String> list = // ...

// Creation
PagedListHolder page = new PagedListHolder(list);
page.setPageSize(10); // number of items per page
page.setPage(0);      // set to first page

// Retrieval
page.getPageCount(); // number of pages 
page.getPageList();  // a List which represents the current page

如果需要排序,请使用另一个带有MutableSortDefinition的PagedListHolder构造函数。

 类似资料:
  • 我很清楚关于这个话题有多个问题,但我就是弄不懂它的意思。问题似乎是没有将新值添加到@cacheable列表中。 调试完问题后,我发现问题似乎出在钥匙上。 下面是代码片段 所以当我调用save方法时,用于缓存的关键字是incrementing integer,或者1,2,3...但是当我尝试获取所有文档时,缓存使用SimpleKey[]作为键。如果我尝试为@Cacheable使用相同的键,我会得到S

  • 我正在使用此库:https://github.com/yshrsmz/KeyboardVisibilityEvent检测键盘何时打开或关闭,这取决于android清单的输入。 此库可以完美地检测软键盘的打开和关闭事件,但由于adjustResize参数,我的内容被推到了视图之外。 > Java: XML: 因此,通过调整第二个编辑文本的行,这非常有效,因此我在键盘上方键入,但当我关闭键盘时,滚动到

  • 我们有一个关于MySQL中返回错误整数值的函数的问题。我们已经检查了“booked_passeters”是否包含正确的值0,并且当移除该变量时,它可以正常工作,也就是说只返回整数40。但是,当我们试图从它中减去“booked_passeters”(最终仍应返回40)时,它就不起作用了。 包括下面的代码。 提前道谢!:-)

  • 我有一个测试类包含测试方法和两个服务类和。我正在为类中的方法编写JUnit测试,该类包括对类方法的调用。在我写的测试方法中 因此,当调用时,它应该返回大小为1,但不返回此列表,返回的是一个大小为0的列表。

  • 我有以下问题 写一个函数: 给定一个包含N个整数的数组A,返回A中没有出现的最小正整数(大于0)。 例如,给定 A = [1, 3, 6, 4, 1, 2],函数应返回 5。 给定A = [1,2,3],函数应该返回4。 给定A =[1,3],该函数应返回1。 为以下假设编写有效的算法: N是[1..100000]范围内的整数 数组A的每个元素都是范围内的整数[−1000000..1000000]