![](/img/trans.png)
[英]How to display Map's list value based on 1 key in Apex Salesforce?
[英]unable to get Salesforce Apex map to list
看到我看不到解决方案的奇怪行为。 任何建议赞赏。 我有一张明确填充了键值对的地图。 然后,我尝试在更新之前将映射值传递给每个提供的映射方法的列表。 我立即执行此操作,由于某种原因,我丢失了刚刚传递给列表的记录上的值,反过来无法更新它。 代码和调试日志如下;
代码(调试行已删除):
if(!posMap.isEmpty()){
List<Position__c> posUpdates = new List<Position__c>();
posUpdates = posMap.values();
update posUpdates;
}
调试日志:
USER_DEBUG|[403]|DEBUG|posUpdate record -->Position__c:{Affiliation_Final__c=a03N0000000mQEKIA2, Position_Type__c=Warden, Id=a07N0000000iA6lIAE}
11:21:17.825 (825365000)|SYSTEM_METHOD_EXIT|[403]|System.debug(ANY)
11:21:17.825 (825386000)|SYSTEM_METHOD_ENTRY|[404]|String.valueOf(Object)
11:21:17.825 (825402000)|SYSTEM_METHOD_EXIT|[404]|String.valueOf(Object)
11:21:17.825 (825413000)|SYSTEM_METHOD_ENTRY|[404]|System.debug(ANY)
11:21:17.825 (825418000)|USER_DEBUG|[404]|DEBUG|id ->null
11:21:17.825 (825422000)|SYSTEM_METHOD_EXIT|[404]|System.debug(ANY)
11:21:17.825 (825439000)|SYSTEM_METHOD_ENTRY|[405]|String.valueOf(Object)
11:21:17.825 (825453000)|SYSTEM_METHOD_EXIT|[405]|String.valueOf(Object)
11:21:17.825 (825464000)|SYSTEM_METHOD_ENTRY|[405]|System.debug(ANY)
11:21:17.825 (825468000)|USER_DEBUG|[405]|DEBUG|Affiliation_Final__c ->null
11:21:17.825 (825472000)|SYSTEM_METHOD_EXIT|[405]|System.debug(ANY)
11:21:17.825 (825516000)|DML_BEGIN|[406]|Op:Update|Type:Position__c|Rows:2
11:21:17.826 (826821000)|DML_END|[406]
11:21:17.826 (826971000)|EXCEPTION_THROWN|[406]|System.DmlException: Update failed. First exception on row 0; first error: MISSING_ARGUMENT, Id not specified
该错误表示尚未从数据库中检索或插入posMap中的记录。
upsert操作将插入尚未存在于数据库中的那些并更新那些。
upsert posMap.values();
如果记录存在于数据库中,请尝试update posMap.values();
不必检查map是否为空,否则将update更改为insert或upsert
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.