【问题标题】:How would I retrieve an Embedded Entity with repeated properties using datastore java client如何使用数据存储区 java 客户端检索具有重复属性的嵌入式实体
【发布时间】:2016-01-13 18:29:55
【问题描述】:

我使用 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"));
  }
}

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

【问题讨论】:

    标签: java python protocol-buffers google-cloud-datastore google-cloud-dataflow


    【解决方案1】:

    好的,知道了。这就是我启用它的方式:

    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。

    【讨论】:

    • 请注意,这是在 V1 之前的 beta 版本上完成的。
    猜你喜欢
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    相关资源
    最近更新 更多