使用 Java Google 云数据存储 API 将 com.google.cloud.datastore.Key 对象转换为 com.google.datastore.v1.Key 对象

问题描述 投票:0回答:0

是否有人尝试使用 Java API 将 com.google.cloud.datastore.Key 对象转换为 com.google.datastore.v1.Key 对象。问题是我使用 com.google.cloud.datastore.* API 执行了一个查询,但 Dataflow 的 DataStoreIO API 只允许 v1 对象通过。

查询查询= Query.newEntityQueryBuilder().setNamespace(options.getNameSpace()) .setKind(options.getKind()) .setFilter(StructuredQuery.PropertyFilter.hasAncestor(key)) 。建造(); 事务 transaction = datastore.newTransaction(); QueryResults 结果 = transaction.run(query); com.google.cloud.datastore.Entity[] keys = Iterators.toArray(results, com.google.cloud.datastore.Entity.class); 如果(键。长度> 0){ int i = keys.length - 1; 而(我> 0){ String keyStream = keys[i].getKey().toString(); LOG.info("keyStream::::",keyStream); com.google.datastore.v1.Key keyV1 = com.google.datastore.v1.Key.parseFrom(keys[i].getKey().toString().getBytes()); 我 - ; } }

每次我收到 Invalid Protocol missing wire type exception 时。

google-cloud-platform google-cloud-datastore google-cloud-dataflow apache-beam
© www.soinside.com 2019 - 2024. All rights reserved.