我想将多个实体(在同一实体组下)作为批处理插入到数据存储区中,只插入缺少的实体,其余部分未修改。 Datastore.add(Entities...)
似乎支持它,如client issue和docs中所述。
我在ofy()
上看不到替代方案,因为save()
操作最终转换为datastore.put()
,如here所示,它将覆盖所有实体。
另一种方法是打开一个新的交易,在这个交易中,我可以通过他们的密钥获取这些实体,并从列表中找到缺失的实体并将其插回去,但我认为这将比之前的选项更昂贵事务具有比add()
所需的行级更广泛的并发级别。