在我的订单插入触发器中,我需要更新订单信息的联系人,我知道我的联系人列表中有重复的记录。所以我用 联系人[] contactToUpdate = new List(new Set(contactList)); 删除重复项。
但我仍然收到错误消息:列表中有重复项。
有什么想法吗??
谢谢
最佳答案
你是正确的,一个集合包含唯一的元素,但问题是你正在处理联系人的实例:仅仅因为两个实例引用数据库中的同一个联系人,它们在内存中仍然是不同的对象实例,因此是唯一性,结果是您必须在集合中的条目代表具有相同 ID 的相同联系人。
解决此问题的最简单方法是使用 id 映射来联系:
map<Id, Contact> contactMap = new map<id, Contact>();
对于您处理的每个订单,您可以使用联系人查找作为 map 的键来找到您要更新的联系人。在处理结束时,您只需调用即可更新联系人:
update mapContacts.values();
关于list - Salesforce 顶点触发列表中的重复 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10791984/