有人可以详细说明什么是mapAccounts.get(opp.AccountId)正在到达MapAccount acc = mapAccounts.get(opp.AccountId);
trigger OppTrigger on Opportunity (after insert) {
if(Trigger.isInsert && Trigger.isAfter)
{
Set<Id> acctSet = new Set<Id>();
List<Account> accList = new List<Account>();
for(Opportunity opp : Trigger.new)
{
acctSet.add(opp.AccountId);
}
Map<Id, Account> mapAccounts = new Map<Id, Account>([SELECT Id, accField__c FROM Account where Id IN :acctSet]);
for(Opportunity opp : Trigger.new)
{
Account acc = mapAccounts.get(opp.AccountId);
acc.accField__c = opp.oppField__c;
accList.add(acc);
}
Update accList;
}
}
此触发器没有错误,但我需要详细了解mapAccounts.get(opp.AccountId);
会到达这里
答案 0 :(得分:0)
它正在从mapAccounts
获取与分配给机会opp
的帐户相对应的sObject实例。
这是一种常见的批量化模式,允许在Apex中查询两个sObject并使其相互关联,而无需循环运行SOQL,这会消耗不可接受的数量的调控器限制。