英文:
Go App Engine nested objects are not stored in Cloud Datastore
问题
我有一个名为EmergencyCase的实体,它有两个嵌入结构(一个数组和一个结构体)。
当我尝试通过调用以下代码保存EmergencyCase时:
datastore.Put(c, key, &ec)
除了Pos字段(类型为Position)之外,其他所有内容都被正确存储。关于这个问题,没有错误或日志记录。它只是没有被存储。有什么建议吗?
以下是我的三个实体定义:
type Position struct{
lon float32
lat float32
}
type EmergencyCase struct{
// 自动生成的ID,不存储在数据库中。
ID string `datastore:"-"`
CreatedAt time.Time
Closed bool
ClosedByUser bool `datastore:",noindex"`
AutoClosed bool `datastore:",noindex"`
Pos Position
Events []Event
}
type Event struct{
// 自动生成的ID,不存储在数据存储中。
ID string `datastore:"-"`
CreatedAt time.Time
Name string `datastore:",noindex"`
}
英文:
I have a entity EmergencyCase that has 2 embedded structs (1 array and 1 struct)
When I try to save the EmergencyCase by calling:
datastore.Put(c, key, &ec)
Everything is stored fine except the Pos field (type Position). There is no error or log entry about this. It is just not stored. Any suggestions?
Here are my 3 entities definitions:
type Position struct{
lon float32
lat float32
}
type EmergencyCase struct{
// Autogenerated id, not stored in the database.
ID string `datastore:"-"`
CreatedAt time.Time
Closed bool
ClosedByUser bool `datastore:",noindex"`
AutoClosed bool `datastore:",noindex"`
Pos Position
Events []Event
}
type Event struct{
// Autogenerated id, not stored in the datastore.
ID string `datastore:"-"`
CreatedAt time.Time
Name string `datastore:",noindex"`
}
答案1
得分: 5
将Position字段的名称导出,通过将名称的第一个字母大写。数据存储只存储导出字段。
type Position struct{
Lon float32
Lat float32
}
翻译结果:
将Position字段的名称通过将名称的第一个字母大写来导出。数据存储只存储导出字段。
type Position struct{
Lon float32
Lat float32
}
英文:
Export the Position field names by uppercasing the first letter in the name. The datastore stores exported fields only.
type Position struct{
Lon float32
Lat float32
}
答案2
得分: 1
尝试使用appengine.GeoPoint作为一种替代/优化的类。
英文:
Try using appengine.GeoPoint as an altenative/optimised class
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论