【问题标题】:Set a property to null with Google Cloud Dataflow's Java API for Datastore?使用 Google Cloud Dataflow 的 Java API for Datastore 将属性设置为 null?
【发布时间】:2018-07-18 04:24:21
【问题描述】:
Google 的大多数数据存储区 Java 文档中提到的 com.google.cloud.datastore 包提供了一个带有 setNull 方法的 Builder 类,用于将任何属性值设置为 null,例如
FullEntity.Builder<IncompleteKey> builder = FullEntity.newBuilder();
builder.setNull("propertyName");
Google Cloud Dataflow/Apache Beam 的 DatastoreIO 类需要 com.google.datastore.v1 包中的实体,而构建器方法不包含类似的 setNull 方法。如何使用 V1 Java API 将属性设置为 null?
【问题讨论】:
标签:
java
google-cloud-datastore
google-cloud-dataflow
apache-beam
【解决方案1】:
如果使用com.google.datastore.v1 包实体和值,这是设置空值的方法(使用 Apache Beam/Google Dataflow):
import com.google.datastore.v1.Entity;
import com.google.datastore.v1.Entity.Builder;
import com.google.datastore.v1.Value;
import com.google.protobuf.NullValue;
Value nullValue = Value.newBuilder().setNullValue(NullValue.NULL_VALUE).build();
Entity.Builder builder = Entity.newBuilder();
builder.putProperties("propertyName", nullValue);
(回答我自己的问题,因为我花了很长时间才弄清楚这一点!)