gpt4 book ai didi

java - 如何使用数据存储区 java 客户端检索具有重复属性的嵌入式实体

转载 作者:行者123 更新时间:2023-11-30 07:40:26 25 4
gpt4 key购买 nike

我使用 AppEngine SDK 的 python API 在数据存储区上创建了实体,并且我想在 Google Cloud Dataflow (Java) 上检索它们。实体的结构是这样的:

  • 实体
    • embedded_entity (ndb.StructuredProperty(repeated=True))
      • 姓名
      • 姓名
      • 姓名
      • 姓名

检索就像这样,但我知道我错过了提取数据的步骤。

static class EmbeddedStringExtractor extends DoFn<Entity, String> {
@Override
public void processElement(ProcessContext c) {
Map<String, Value> main_entity_map = DatastoreHelper.getPropertyMap(c.element());
Entity embedded_entity = entity.get("embedded_entity").getEntityValue();
// missing step
Map<String, Value> embedded_entity_map = DatastoreHelper.getPropertyMap(embedded_entity);
String some_string = DatastoreHelper.getString(embedded_entity_map.get("name"));
}
}

我如何循环遍历所有重复的属性?

最佳答案

好的,明白了。这就是我启用它的方法:

static class EmbeddedStringExtractor extends DoFn<Entity, String> {
@Override
public void processElement(ProcessContext c) {
Map<String, Value> main_entity_map = DatastoreHelper.getPropertyMap(c.element());
List<Value> embedded_entity_values = entity.get("embedded_entity").getListValueList();

for (Value embedded_entity_value: embedded_entity_values){
Entity embedded_entity = embedded_entity_value.getEntityValue();
Map<String, Value> embedded_map = DatastoreHelper.getPropertyMap(embedded_entity);
String embedded_name = DatastoreHelper.getString(embedded_map.get("name"));
}

// And then just c.output whatever you need.

}
}

只需要习惯 Java API。

关于java - 如何使用数据存储区 java 客户端检索具有重复属性的嵌入式实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34774351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com