Запрос Salesforce Soql ограничен первыми 150 строками в пользовательском объекте
Меня смущает, почему запрос 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 есть несколько тысяч записей. Любое понимание этого будет оценено.
2 ответа
Это была моя проблема. Проблема заключалась в том, как я получал данные в объект Metro. Я достигал 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