Salesforce apex触发列表中的重复ID

时间:2012-05-29 01:05:39

标签: list triggers duplicates salesforce

在我的订单中插入触发器,我需要更新订单信息的联系人,我知道我的联系人列表中有重复的记录。所以我用 联系[] contactToUpdate = new List(new Set(contactList)); 删除重复项。

但我仍然收到错误消息:列表中的重复。

任何想法?

由于

1 个答案:

答案 0 :(得分:5)

一组包含唯一元素是正确的,但问题是你正在处理联系实例:只是因为两个实例引用了DB中的同一个联系人,它们仍然是内存中不同的对象实例,因此是唯一的,结果是你可以拥有代表相同ID的同一联系人的集合中的条目。

最简单的方法是使用id联系地图:

map<Id, Contact> contactMap = new map<id, Contact>();

对于您处理的每个订单,您可以使用联系人查找作为地图的关键字来联系您要更新的联系人。在处理结束时,您只需致电:

即可更新联系人
update mapContacts.values();