System.LimitException: Too many SOQL queries: 101
2023年09月07日
文章浏览:296

一般是因为soql在循环中出现,而循环次数超过了100次。


解决方法,可以在循环外部批量查询,把需要的结果保存在列表或字典中,例如:


Map<Id,Account> accountMap = new Map<Id, Account>();


// 查询要保存的Account记录,并将其添加到Map中

List<Account> accountsToSave = [SELECT Id FROM Account];

for (Account acc: accountsToSave) {

    accountMap.put(acc.Id, acc);

}


关注 收藏
2023年09月08日

是的,这个是刚从Java转过来的程序员特别容易出这样的问题。

关于SOQL啊,DML数量的限制啊,一定要节省着用。下面的代码也是类似的,和你举的例子是一样的。

回复
2023年09月08日

推荐一个小技巧,这样写可以直接将检索结果装进MAP:

Map<Id, Account> accountMap = new Map<Id, Account>([SELECT Id, Name FROM Account WHERE Some_Condition__c = :someValue]);


回复
jowell.qiao 回复 yusizhong 刚看到上面的图片里有。。。
回复