获取类型的所有实体作为Map <key,entity =“”> </key,>

时间:2014-12-17 17:44:18

标签: google-app-engine google-cloud-datastore objectify

使用ofy().load().type(SomeEntity.class).ids(id_collection);时,您会得到Map<String, SomeEntity>的结果(假设密钥类型为String)。

是否可以针对给定类型的所有条目获取Key -> Entity的映射,而不仅仅是具有匹配ID的条目?

背景:目前,我正在做这样的事情(伪代码):

foreach operation: o {
  List<SomeEntitiy> affected = ofy.load(o.affectedEntities)
  foreach affected: a{
    a.performOperation(o)
  }
  ofy.save(affected)
}

一个实体可能受多个操作的影响,所以我想只获取所有实体一次,对受影响的实体执行操作,然后将它们存储一次。

1 个答案:

答案 0 :(得分:1)

该方法只是一种方便的方法,key()的简写,其中包含一组由该类型和一组id构造的键。看一下LoadTypeImpl中的实现。

通过继承一些Objectify命令类,您可以添加自己的重载。或者只使用keys()方法。