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

spring中用于对列表进行分页的可分页不起作用

殳阳飙
2023-03-14
@Query("select a.applicantid,coalesce(to_char(a.createdon,'yyyy-MM-dd'),to_char(filing_date,'yyyy-MM-dd')) as dt1, \r\n" + 
        "coalesce(c.companyname,i.InstituteName,(u.firstname||' '||u.lastname),\r\n" + 
        "u.firstname) ,a.c_denomination,cc.crop_common_name,cs.crop_botanical_name,\r\n" + 
        "a.id,aps.status,a.cropid, \r\n" + 
        "(select mv.varietytype from VarietyType mv where mv.id= a.varirtytypeid),\r\n" + 
        "(select sv.subvarietytype from SubVarietyType sv,VarietyType mvr \r\n" + 
        " where a.subvarietytypeid = sv.id and mvr.id= sv.varietyid),a.formtype,mcg.crop_group \r\n" + 
        " from Applications a left join ApplicantRegistration ap on \r\n" + 
        " a.applicantid = ap.id left join CompanyRegistration c on ap.companyid = c.id \r\n" + 
        " left join InstitutionRegistration i on ap.institutionid = i.id \r\n" + 
        " left join Crops cc on a.cropid = cc.id left join CropSpecies cs \r\n" + 
        " on a.cropspeciesid =cs.id left join InternalUser u on ap.id = u.applicantid \r\n" + 
        " left join ApplicationStatus aps on a.application_current_status = aps.id "
        + "left join CropGroup mcg on cc.cropgroupid = mcg.id order by a.id desc")
       List<Object[]> getapplication_adminview();



List<Object[]> admin_viewapplication=applicationrepository.getapplication_adminview();
int pageNumber = 0;
int size = 10;
Pageable pageable = PageRequest.of(pageNumber, size); // object of pageable
Page<Object> pages = new PageImpl(admin_viewapplication, pageable, admin_viewapplication.size());
List<Object> lpage = pages.getContent(); // here i am getting the lpage size as 10000 but as i enter pageable as of size 10  i am expecting 10 results only

我在哪里出错了?如果我试图添加可分页对象来查询并运行代码,我将得到以下错误:

无法使用请求的结果类型[java.lang.long]为具有多个返回的查询创建TypedQuery;嵌套异常是java.lang.IllegalArgumentException:无法使用请求的结果类型[java.lang.long]为具有多个返回的查询创建TypedQuery

共有1个答案

拓拔高畅
2023-03-14

page只表示一页数据。因此page.getContent()只返回一个页面中的所有数据,该页面是在创建此页面实例时通过构造函数指定的。它与在页中拆分数据无关。

如果要拆分列表,使用listsguava拆分列表是最简单的方法:

List<List<Object>> splittedList = Lists.partition(list, 10);

如果要进行分页,将存储在数据库中的所有数据拆分为不同的较小的页,请在数据库级别进行拆分,而不是将整个列表放到内存中进行拆分,当整个列表很大时,拆分效率会非常低。有关如何通过在查询方法中声明pageable,在数据库级别对其进行拆分,请参见此部分。

 类似资料:
  • 不明白为什么这个突然停止工作。网站是:http://www.revival.tv/sermons/topical-messages/ 当它进入第二页时,它只使用了归档模板:(不确定为什么这样做,它在去年工作得很好。想知道Wordpress更新是否做到了这一点,我们只是注意到了它。 我使用以下的分页: 然后改写布道:

  • 问题内容: 我正在尝试使用HQL使用JOIN FETCH来获取我的实体以及子实体,如果我想要所有结果,这可以正常工作,但是如果我想要一个Page,则不是这样 我的实体是 并且由于我有数百万次的访问,因此我需要使用Pageable,并且希望在单个数据库查询中提取注释: 该HQL调用引发以下异常: 一旦我删除分页,一切正常 显然问题是来自Spring-Data的count查询,但是我们如何解决呢? 问

  • 我试图通过使用Spring Data中的注释,将排序与集成在联接字段上。 有人建议将添加到参数中,以便在某种程度上与分页(spring data jpa@query和pagable)相对应 我已经学习了Baeldung的教程,但这不包括联接 Spring-Data FETCH JOIN与分页不起作用也建议使用,但我更喜欢使用,而不是. 我将在下面留下一些代码示例。如果我遗漏了一些重要的东西,请随时

  • 我使用一个可分页对象返回一个对象,其中包含一个记录列表 对象的形式如下: 我可以通过两个不同的查询获得这两个

  • 给定一个< code>java.util.List和< code>n个元素以及一个期望的页面大小< code>m,我想将它转换成一个包含< code>n/m n%m个元素的映射。每个地图元素应包含< code>m个元素。 这里有一个整数的例子: 使用Java 8,这是可能的吗?

  • 问题内容: 给定一个with 元素和所需的页面大小,我想将其转换为包含元素的地图。每个地图元素应包含元素。 这是一个整数示例: 使用Java 8可以吗? 问题答案: 您可以将其与收集器和方法结合使用(感谢Duncan的简化)。 首先,您需要计算地图中所需的键数。这是通过(这是流的限制)给出的。 然后,您创建一个创建序列的Stream 。 现在,对于每个值,您将抓住对应的值,这将是我们的值(您需要对