DBMS不可知方式限制内部灵活搜索中的结果计数

2020-09-24 12:23发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


是否有一种方法可以以与DBMS无关的方式来限制内部查询中的结果计数? 在外部查询上,我可以使用de.hybris.platform.servicelayer.search.Abs​​tractQuery.setCount(int),但我不知道如何在内部查询上执行此操作。 举例来说,这仅适用于MySQL:

 选择*
         来自$ {type}
         哪里
     
         {{
            选择 *
               来自$ {other_type}
               $ {subselect_search_condition}
               极限5
         }}
 
 

  

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


是否有一种方法可以以与DBMS无关的方式来限制内部查询中的结果计数? 在外部查询上,我可以使用de.hybris.platform.servicelayer.search.Abs​​tractQuery.setCount(int),但我不知道如何在内部查询上执行此操作。 举例来说,这仅适用于MySQL:

 选择*
         来自$ {type}
         哪里
     
         {{
            选择 *
               来自$ {other_type}
               $ {subselect_search_condition}
               极限5
         }}
 
 

  
付费偷看设置
发送
1条回答
风早神人
1楼-- · 2020-09-24 13:04

类似分页的东西,您可以在此处使用。 但是,已经有 关于您的主题的类似主题。 在下面找到有关分页的摘录(摘自Wiki页面),也许您可​​以将其应用于用例:

  int start = 0;
  最终int范围= 3;
  总计
  
  字符串查询=" SELECT {" + UnitModel.PK +"} FROM {" + UnitModel._TYPECODE +"} ORDER BY" + UnitModel._TYPECODE;
  最终的FlexibleSearchQuery fQuery =新的FlexibleSearchQuery(query);
  fQuery.setCount(range);
  fQuery.setNeedTotal(true);
  
  做
  {
    fQuery.setStart(start);
    最终SearchResult  searchResult = flexibleSearchService.search(fQuery);
    总计= searchResult.getTotalCount();
    开始+ =范围;
  }
  while(开始<总计);


  

一周热门 更多>