映射sObjectsToClone =子对象的映射以及关系名称。
我必须将给定的儿童记录克隆到批处理中的每个机会。
void execute(Database.BatchableContext BC, List<Opportunity> batch) {
List<Opportunity> OpportunityList = new List<Opportunity>();
for(Opportunity opp : batch) {
OpportunityList.add(opp);
}
insert OpportunityList;
List<sObject> childObjectStore = new List<sObject>();
for(sObject sob : sObjectsToClone.keySet()) {
//List<sObject> childObjectStore = new List<sObject>();
for(Opportunity sOppy : OpportunityList) {
sObject clone = sob.clone(false, true);
clone.put(sObjectsToClone.get(sob), sOppy.Id);
system.debug('Clone :: '+clone);
childObjectStore.add(clone);
}
//insert childObjectStore;
}
insert childObjectStore;
}
如果OpportunityList大小很小(例如10),则此代码可以正常工作,但如果OpportunityList大小更多(例如大于100),则会抛出System.LimitException: Apex heap size too large:
异常。
请建议任何解决方案。