list - Salesforce 顶点触发列表中的重复 ID

标签 list triggers duplicates salesforce

在我的订单插入触发器中,我需要更新订单信息的联系人,我知道我的联系人列表中有重复的记录。所以我用 联系人[] 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/

相关文章:

python - 使用 Python 将字符串中的字符转换为多个字符

python - networkx - 使用两个列表绘制不同颜色的节点

Java List<String> 到 Map<String, Long> 转换

mysql - 正确、仔细地设置 MySQL 触发器语法

Java序列化和重复对象

sql - 在 Postgres 中查找多个重复项

java - 查找数组中的重复项并将其添加到计数中

c# - 充当列表管理器(包含列表的列表)以减少样板代码的抽象类?

mysql - 如何在mysql中将参数传递给触发器

MySQL触发器优缺点