正确使用PaginatedFlexibleSearchService

2020-09-07 19:52发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我试图周期性地(使用hy...

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

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


你好

我试图周期性地(使用hybris cron作业)删除" CronJobHistory"类型的所有对象,而不同时将它们全部加载到堆空间中。

编写

https://answers.sap.com/questions/ 12769618/paginationbatches-using-flexible-search.html

我们应该使用paginatedFlexibleSearchService在灵活的搜索结果中进行分页。 因此,我尝试使用批处理加载对象,然后对它们进行modelservice.removeAll()。

很遗憾,我找不到paginatedFlexibleSearchService的正确示例。

我可以这样使用吗:

  public void removeHistoryEntriesOlderThanDate(final Date date,int batchSize){
 
          最后的字符串查询=" SELECT {" + ItemModel.PK +"} FROM {" + CronJobHistoryModel._TYPECODE +"}" +" WHERE {"
                  + CronJobHistoryModel.MODIFIEDTIME +"} <?date";
 
          PaginatedFlexibleSearchParameter参数=新的PaginatedFlexibleSearchParameter();
          parameter.setFlexibleSearchQuery(new FlexibleSearchQuery(query));
 
          最终整数i = 0;
          boolean searchResultEmpty;
          SearchPageData  searchResult;
          做{
              SearchPageData  searchPageData = PaginatedSearchUtils
                      .createSearchPageDataWithPaginationAndSorting(batchSize,i,true,null);
              parameter.setSearchPageData(searchPageData);
              searchResult = paginatedFlexibleSearchService.search(parameter);
             
          List 结果= searchResult.getResults();
          searchResultEmpty = CollectionUtils.isNotEmpty(结果);
          modelService.removeAll(results);
         
          } while(!searchResultEmpty);
      }

  

或者还有另一种更好的混合方法来删除对象而不将它们加载到堆空间中?

提前谢谢!

斯文

付费偷看设置
发送
2条回答
xfwsx85
1楼-- · 2020-09-07 20:01

嗨-请检查以下类别的示例:

  hybris/bin/platform/ext/core/testsrc/de/hybris/platform/servicelayer/search/paginated/impl/DefaultPaginatedFlexibleSearchServiceIntegrationTest.java
  

我也附上相同的内容。 链接文本

Violet凡
2楼-- · 2020-09-07 20:26

如何使用弹性搜索服务并使用setCount()来限制 加载的项目数量。 分页服务似乎对您不需要的项目进行了排序。

一周热门 更多>