【问题标题】:How to handle EmbededEntity Google Datastore field如何处理 EmbededEntity Google Datastore 字段
【发布时间】:2020-03-20 02:52:56
【问题描述】:

我在 GCP 中有一个 datstore 类型,如下所示: 种类名称:“测试”

字段是:

  • 名称 -- 字符串
  • date_of_birth -- 日期和时间 --Nullable
  • 类别 -- EmbededEntity -- 可空

类别字段的值如下:

{"technology":{"start_date":"2020-01-10",   "end_date":"2020-03-31",    "desgnation":"teamlead",    "project_handle":2},"management":{"start_date":"2020-01-10",    "end_date":"2020-03-31",    "desgnation":"trainee", "project_handle":2}}

就像在 Java 中一样:地图

在 Go 中,我使用 Go google 数据存储库从数据存储中获取记录并使用以下结构

type Test struct{
    Name string `datsttore:"name"`
    DOB Time.time   `datastore:"date_of_birth"`
    category interface{} `datastore:"category"` 
}

当上面示例中提到的类别字段值存在时,结构正在正确填充,但如果类别值为空,则从数据存储库中它会从以下突出显示的执行中引发恐慌。

【问题讨论】:

  • 您能否查看How do I ask a good question? 并发布您收到的错误的实际文本,而不是代码截图?如果他们有类似的问题,它可以帮助人们在未来找到这个问题。

标签: go google-cloud-datastore


【解决方案1】:

看起来如果你想为类别设置一个可以为空的值,你需要将其设为一个指针。 docs 显示使用 *Entity 表示可以为空的嵌入式实体。

您看到的错误是“Loading Nulls”中记录的内容

【讨论】:

  • 问题是数据存储区单个字段对于某些实体是 emdedEntity 类型,对于某些实体是空类型。我们如何使用单个结构属性来处理它?
  • 内部结构是一个嵌入式实体。因此,要么它需要是一个指针,以便它可以为空,要么它不是指针且不可为空。
  • 我如何使用类似地图的数据作为内部结构。数据就像 map[string]anotherstruct
猜你喜欢
  • 1970-01-01
  • 2021-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 2019-01-12
  • 2012-09-29
相关资源
最近更新 更多