Salesforce Soql 查询仅限于自定义对象中的前 150 行

Salesforce Soql query is limited to first 150 rows in custom object

我很困惑为什么针对自定义对象的 SOQL 查询只返回前 150 行,而它应该返回到调控器限制 (50,000)。有谁知道为什么我的查询受到限制?

这是我的控制器方法:

@RemoteAction
public static List<Metro__c> getAllMetros(){
    String query = 'SELECT Id, Name, state__c FROM Metro__c ORDER BY Name';
    List<Metro__c> r = Database.query(query);
    System.debug('r='+r.size());
    return r;
}

当我查看调试时,我看到:

10:48:27:237 USER_DEBUG [54]|DEBUG|r=150

Metro__c 对象中有几千条记录。对此有任何见解将不胜感激。

这是我的问题。问题是我如何将数据导入 Metro Object。我达到了每个请求 150 个 SoQL 查询的限制,但我没有意识到对象中并不存在所有记录。更改记录的插入方式后,一切正常。

这听起来像你的批量大小为 150。你可以通过

设置它
connection.setQueryOptions(250);

当您执行 query() 函数时,您将获得 250 条记录,您需要使用 queryMore() 继续捕获下一批。

请查看 Salesforce 文档: https://www.salesforce.com/developer/docs/api/Content/sforce_api_calls_query.htm

http://www.salesforce.com/us/developer/docs/soql_sosl/index_Left.htm#StartTopic=Content/sforce_api_calls_soql_changing_batch_size.htm