用于 Salesforce API 查询的 SOQL 分页
-
19-09-2019 - |
题
是否有一种有效的方法可以对 SOQL 查询的结果进行分页,而无需返回所有查询结果,然后丢弃其中的大部分结果?
例如,我希望能够翻阅一次显示 10 条记录的完整联系人列表。我不需要按任何特定字段进行排序。
解决方案
目前,我发现可通过合作伙伴 API 处理任何 SOQL 查询的最有效解决方案是保留从初始 QueryResult 和查询定位器返回的 sObject,以防在当前结果之外请求页面。
这需要在 Salesforce QueryResult 之上提供一定程度的分页支持。
IE。当请求页面时,可能需要以下 sObject:
- 当前(缓存的)QueryResult
- 可以使用查询定位器获取后续的 QueryResult
- 先前的查询结果
- 三者的某种组合。
如果页面跨越两个(或更多)查询结果,则需要使用所有必需的记录创建人工查询结果。
2012 年春季版本更新
看起来即将推出的新功能将为 SOQL 添加 OFFSET 支持。例如。
SELECT Name FROM Merchandise__c WHERE Price__c > 5.0 ORDER BY Name LIMIT 50 OFFSET 100
看 Spring '12 Force.com 平台发布 - OFFSET 添加到 SOQL(试点)
2012 年夏季版本更新
OFFSET 现已正式发布 (全面可用?)
其他提示
您可以使用申请在服务器端做分页一个自动编号。这个字段可以后“以便通过”子句中使用,它可以作为一个索引字段。
我做分页像你身边。但我有一个问题,在服务器端在同一时间,我不能做排序。因为排序和分页都需要“按订单”条款之后添加列。
不隶属于 StackOverflow