在我的订单中插入触发器,我需要更新订单信息的联系人,我知道我的联系人列表中有重复的记录。所以我用 联系[] contactToUpdate = new List(new Set(contactList)); 删除重复项。
但我仍然收到错误消息:列表中的重复。
任何想法?
由于
答案 0 :(得分:5)
一组包含唯一元素是正确的,但问题是你正在处理联系实例:只是因为两个实例引用了DB中的同一个联系人,它们仍然是内存中不同的对象实例,因此是唯一的,结果是你可以拥有代表相同ID的同一联系人的集合中的条目。
最简单的方法是使用id联系地图:
map<Id, Contact> contactMap = new map<id, Contact>();
对于您处理的每个订单,您可以使用联系人查找作为地图的关键字来联系您要更新的联系人。在处理结束时,您只需致电:
即可更新联系人update mapContacts.values();