繁体   English   中英

删除arraykey中所有行的最佳方法是什么?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM