Запрос 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

Другие вопросы по тегам