我在我的 Google Cloud Dataflow 程序中編寫了一個從 Google Datastore 獲取數據的代碼。我能夠獲取實體的所有字段,除了自動生成的字段 Id 字段。我曾嘗試使用 entity.getKey() 但我得到了空值。下面是我的代碼片段,Datastore datastore = DataflowDatastoreService.getDatastoreObject(null, null, null);Query.Builder queryBuilder = Query.newBuilder();Filter filter1 = Filter.newBuilder().setPropertyFilter(PropertyFilter.newBuilder() .setProperty(PropertyReference.newBuilder().setName("cId")).setOp(PropertyFilter.Operator.EQUAL).setValue(Value.newBuilder().setIntegerValue(1059438885900008L).build()).build()).build();Filter filter2 = Filter.newBuilder().setPropertyFilter(PropertyFilter.newBuilder().setProperty(PropertyReference.newBuilder().setName("active")).setOp(PropertyFilter.Operator.EQUAL).setValue(Value.newBuilder().setBooleanValue(Boolean.TRUE).build()).build()).build();Filter composeFilter = Filter.newBuilder().setCompositeFilter(CompositeFilter.newBuilder() .addFilters(filter1).setOp(Operator.AND).addFilters(filter2).build()).build(); queryBuilder.addKind(KindExpression.newBuilder().setName("MyMaster").build()); queryBuilder.setFilter(composeFilter).build();RunQueryRequest request = DataflowDatastoreService.makeRequest(queryBuilder.build(), null);RunQueryResponse response = datastore.runQuery(request);QueryResultBatch batch = response.getBatch();List<EntityResult> entityResutls = batch.getEntityResultsList();List<Entity> myEntities = new ArrayList<>();Map<String, Value> entityMap = myEntities(0).getPropertiesMap();在我的代碼中,我能夠獲取 entityMap 鍵中的所有字段,但我沒有獲取鍵,是否有任何其他方式可以通過 Id 獲取所有字段。
添加回答
舉報
0/150
提交
取消