[英]What is best way to delete all rows within an arraykey?
我有一个实体联系人,它有一个数组实体 Specialties。 只是标准的一对多关系。 一接触多专业。 (专业实体的列很少,可能不相关)。 我有一个屏幕可以将专业列表添加到 PCF 上的联系人。 我想在联系人屏幕上添加一个自定义的全部删除按钮,该按钮将删除数组中针对特定联系人的所有值。 一个联系人可以有大量的专业 (~10000) 删除数组中所有元素的最佳方法是什么?
目前,我在按钮的 action 属性上有以下 function ,它正在计时和超时。
for(spec in contact.Specialties)
{contact.removeFromSpecialties(spec) //OOTB remove from array method}
从数组实体中删除约 10000 条记录还有其他更好的方法吗?
根据您上面的问题,我假设您将在 PCF 屏幕中有一个“全部删除”按钮,其中包含删除与该特定联系人关联的所有专业记录的操作,但您不会删除部分记录(如一条或几条记录)。
我还假设“专业”实体的实体类型是“可编辑”或“可退休”。
牢记上述假设,您可以创建一个新的 function 并从“全部删除”按钮操作属性中调用该 function。
下面给出的代码将硬删除数据库表中的所有记录,就像您对数据库表执行删除查询一样,
function removeAllSpecialitiesForContact(contactFromPCF : Contact){
var specialityQuery = Query.make(entity.Speciality).compare(Speciality#Contact, Equals, contactFromPCF.ID)
var deleteBuilder = new com.guidewire.pl.system.database.query.DeleteBuilder.DeleteBuilder(specialityQuery)
deleteBuilder.execute()
}
正如您已经面临的那样,这种新方法在 PCF 操作后可能不会超时。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.